下面是一个来自Jenkins构建管道脚本的except,它将启动一个容器,并允许从该容器内部执行一系列操作。我的问题是,在一个构建阶段使用docker插件创建容器的语法是什么样子的,该构建阶段仍将启动,以便它可以在后续的构建阶段中使用。
docker.image('groovy:2.4').inside {
sh 'groovy -v'
// if you have a file called test.groovy in your jenkins workspace, you can "magically"
我有多功能的kubernetes集群设置使用库贝斯韦。我使用helm运行了一个应用程序,这大大增加了master的负载。这使得主人几乎无法接近。在此之后,我一个一个地关闭主程序,并在它们上增加RAM和CPU。但是在重新启动之后,apiserver和调度程序都无法启动。他们处于"CreateContainerError“状态。
APIserver正在用消息x509: certificate has expired or is not yet valid记录大量错误。
对于此错误,还有其他线程,其中大多数建议修复apiserver或群集证书。但这是新建立的集群,证书有效期到2020年。
下
我想在一些可能已停止的docker容器上运行docker exec。
我的意思是,它可能运行得很好,但在某些情况下,即服务器重新启动等情况下,我希望运行docker exec的容器将被停止。
有没有好的方法来确保docker exec在两种情况下都能正确执行(容器运行,容器停止)。如果停止的话不会返回:
Error response from daemon: Container is not running
我们有一个码头服务器‘码头版本17.03.0-ce,构建60ccb22’。我们有一些工人,大约10人,他们每个人执行一个非常简单的任务,需要几秒钟才能完成和退出。我们决定他们中的每一个都将启动一个码头容器,当脚本完成时,容器将被停止并移除。更重要的是,crontab处理运行,因此,我们为每个工作人员创建了一个bash脚本,它用标志--rm和-d实例化容器,并在bin/文件夹中启动脚本文件。
#! /bin/sh
f=`basename $0`
workerName=${f%.*} \\name of the bash script without the part after the .
我有一个启动apache和neo4j的脚本neo4j。这个脚本已经在图像ubuntu:14中了。以下是/init的内容
service apache2 start
service neo4j start
从这个映像中,我用下面的dockerfile创建另一个映像
FROM ubuntu:v14
EXPOSE 80 80
ENTRYPOINT ["/init"]
当我运行命令docker run -d ubuntu:v15时,容器会启动,然后退出。据我所知,-d选项在后台运行容器。另外,脚本\init会启动两个守护进程。为什么集装箱要退出?
docker不会重新启动我的容器,即使它列出了退出代码2是docker-compose ps。
Name Command State Ports
-----------------------------------------------------------------------------
app_autoheal_1 /docker-entrypoint autoheal Up (healthy)
我想使用Jenkins CI来执行我的自动化end2end测试。我的测试是用Nightwatch.js运行的。我想通过shell脚本在自己创建的docker容器中运行我的自动化测试。这个shell脚本可以在本地机器上完美运行,但是如果我在Jenkins CI中启动这个shell脚本,那么无论测试通过还是失败,shell脚本都必须返回一个值。如果他们通过了,Jenkins的工作也必须通过。当Docker容器中的测试失败时,Jenkins作业也必须失败。
下面是我当前的shell脚本:
#run the end2end tests headless in docker container from