Jenkins管道Docker-容器未运行

贾斯汀·塞瑟(Justin Seiser)

我让Jenkins在EC2实例上运行。我在对等VPC中配置了EC2插件,当作业标记为“ support_ubuntu_docker”时,它将启动Jenkins Slave,并预安装了Docker。

我能够按照示例操作,并让我的工作连接到在Slave上运行的本地docker,并在容器内运行命令。

工作:https//pastebin.com/UANvjhnA

pipeline {
    agent {
        docker { 
            image 'node:7-alpine' 
            label 'support_ubuntu_docker'
             }
    }
    stages {
        stage('Test') {
            steps {
                sh 'node --version'
            }
        }
    }
}

不起作用https://pastebin.com/MsSZaPha

pipeline {
    agent {
        docker { 
            image 'hashicorp/terraform:light' 
            label 'support_ubuntu_docker'
             }
    }
    stages {
        stage('Test') {
            steps {
                sh 'terraform --version'
            }
        }
    }
}

我尝试使用ansible / ansible:default图像以及我自己创建的图像。

FROM alpine:3.7
RUN apk add --no-cache terraform
RUN apk add --no-cache ansible
ENTRYPOINT ["/bin/ash"]

此图像在本地运行。

[jenkins_test] docker exec -it 3843653932c8 ash                                                                                                                                                                                                                                                   10:56:42  ☁  master ☂ ⚡ ✭
/ # terraform --version
Terraform v0.11.0

/ # ansible --version
ansible 2.4.6.0
  config file = None
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.15 (default, Aug 22 2018, 13:24:18) [GCC 6.4.0]
/ # 

我真的只是想能够克隆我的terraform git repo,并使用容器中的terraform运行我的init / plan / applies。

对于所有这些错误即时消息是。

java.io.IOException: Failed to run top 'c9dfeda21b718b9df1035500adf2ef80c5c3807cf63e724317d620d4bcaa14b3'. Error: Error response from daemon: Container c9dfeda21b718b9df1035500adf2ef80c5c3807cf63e724317d620d4bcaa14b3 is not running
第1138章

这个问题确实应该是Docker问题;node:7-alpine之间有什么区别hashicorp/terraform:light

hashicorp/terraform:light有一个ENTRYPOINT条目,指向/bin/terraform
基本上,这意味着您
docker run hashicorp/terraform:light --version
将以这种方式运行:并且它将立即退出,即,它不是交互式的。
因此,如果您想在该Docker容器内使用交互式外壳,则必须重写,ENTRYPOINT以指向外壳,例如,/bin/bash并告诉Docker交互式运行:

pipeline {
    agent {
        docker { 
            image 'hashicorp/terraform:light' 
            args '-it --entrypoint=/bin/bash'
            label 'support_ubuntu_docker'
        }
    }
    stages {
        stage('Test') {
            steps {
                sh 'terraform --version'
            }
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Jenkins声明式管道运行特权Docker容器

在 Docker 容器中从 Jenkins 管道运行 Django 服务器

Docker-容器未运行

在 jenkins 管道中升級 docker 容器

Jenkins管道无法终止Docker容器

Docker无法链接到未运行的容器

如何删除未运行的 docker 容器?

在Jenkins(在Docker容器中)管道中构建Docker映像

如何在jenkins管道中的docker容器中运行python脚本

无法在 Jenkins 管道的 docker 容器中运行 jasmine 测试用例

Jenkins管道dir()指令导致docker容器退出

通过jenkins管道删除具有图像名称的docker容器

Jenkins管道外壳中的docker容器名称的前缀或后缀

从 Jenkins 管道中的 docker 代理运行时,Ansible 失败

在docker映像内运行的jenkins管道刚刚挂起

使用Docker Jenkins容器管道构建Docker映像时找不到Docker

Postgres Docker容器未运行创建SQL脚本

Docker容器未运行Windows系统调用错误

我应该担心多余的,未运行的Docker容器吗?

Docker 容器未正常运行。退出状态代码 255

Jenkins docker 容器:在容器内运行 docker build

如何在独立的Jenkins中使用docker命令运行jenkins管道作业

Jenkins管道docker代理-docker运行错误-无法运行映像-java.io.IOException

在 Jenkins 中构建和运行 Docker 容器

在Jenkins中的Docker容器中运行命令

使用Jenkins在Docker容器中运行测试

Jenkins 2.0:在Docker容器中运行SBT

如何在基于dockerfile的容器中运行Jenkins管道?

Docker CMD 命令在容器启动后未运行,而命令进入容器工作正常