Can';t在集装箱Jenkins上添加docker的shell构建步骤

Can';t在集装箱Jenkins上添加docker的shell构建步骤,jenkins,docker,jenkins-plugins,Jenkins,Docker,Jenkins Plugins,主机是debian 8.4服务器 詹金斯号采用集装箱运输,随船下水 docker run -d --name myjenkins -p 9090:8080 -p 50000:50000 -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -v /var/jenkins_home:/var/jenkins_home --restart="always" myjenk 从dockerfile

主机是debian 8.4服务器

詹金斯号采用集装箱运输,随船下水

docker run -d --name myjenkins -p 9090:8080 -p 50000:50000 -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -v /var/jenkins_home:/var/jenkins_home --restart="always" myjenk
从dockerfile

FROM jenkins:latest

USER root
RUN apt-get update \
      && apt-get install -y sudo \
      && rm -rf /var/lib/apt/lists/*
RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers
我有一个简单的构建配置,如下所示:

正在创建生成Dockerfile

FROM node:latest

MAINTAINER Poirey Nicolas <fake@mail.com>

WORKDIR /16AGR/frontend

EXPOSE 8080
CMD [ "npm", "install" ]
来自节点:最新
维护者波里·尼古拉斯
WORKDIR/16AGR/前端
曝光8080
CMD[“npm”,“安装”]
我得到这个错误:

Started by user admin
Building in workspace /var/jenkins_home/workspace/frontend-unit-test-2
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url https://github.com/npoirey/16AGR.git # timeout=10
Fetching upstream changes from https://github.com/npoirey/16AGR.git
 > git --version # timeout=10
 > git fetch --tags --progress https://github.com/npoirey/16AGR.git +refs/heads/*:refs/remotes/origin/*
 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
 > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision bb7291657427c118a5df4d97d070a7abb90f8f06 (refs/remotes/origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f bb7291657427c118a5df4d97d070a7abb90f8f06
 > git rev-list bb7291657427c118a5df4d97d070a7abb90f8f06 # timeout=10
Build Docker image from ./frontend//Dockerfile ...
$ docker build --file /var/jenkins_home/workspace/frontend-unit-test-2/frontend/Dockerfile /var/jenkins_home/workspace/frontend-unit-test-2/frontend
Sending build context to Docker daemon 93.18 kB

Step 1 : FROM node:latest
 ---> d1699fb7d2bf
Step 2 : MAINTAINER Poirey Nicolas <fake@mail.com>
 ---> Using cache
 ---> 787f355d0144
Step 3 : WORKDIR /16AGR/frontend
 ---> Using cache
 ---> 083aa873e30a
Step 4 : EXPOSE 8080
 ---> Using cache
 ---> 53eb0ed184a9
Step 5 : CMD npm install
 ---> Using cache
 ---> 2917019ab455
Successfully built 2917019ab455
$ docker run --rm --entrypoint /bin/true alpine:3.2
$ docker run --tty --rm --entrypoint /sbin/ip alpine:3.2 route
$ docker run --tty --detach --privileged --workdir /var/jenkins_home/workspace/frontend-unit-test-2 --volume /var/jenkins_home:/var/jenkins_home:rw --volume /tmp:/tmp:rw --net bridge --add-host dockerhost:172.17.0.1 --env BUILD_DISPLAY_NAME=#4 --env BUILD_ID=4 --env BUILD_NUMBER=4 --env BUILD_TAG=jenkins-frontend-unit-test-2-4 --env CLASSPATH= --env EXECUTOR_NUMBER=1 --env GIT_BRANCH=origin/master --env GIT_COMMIT=bb7291657427c118a5df4d97d070a7abb90f8f06 --env GIT_PREVIOUS_COMMIT=bb7291657427c118a5df4d97d070a7abb90f8f06 --env GIT_PREVIOUS_SUCCESSFUL_COMMIT=bb7291657427c118a5df4d97d070a7abb90f8f06 --env GIT_URL=https://github.com/npoirey/16AGR.git --env HUDSON_HOME=/var/jenkins_home --env HUDSON_SERVER_COOKIE=23e53af9086f2739 --env JENKINS_SERVER_COOKIE=23e53af9086f2739 --env JOB_BASE_NAME=frontend-unit-test-2 --env JOB_NAME=frontend-unit-test-2 --env NODE_LABELS=master --env NODE_NAME=master --env WORKSPACE=/var/jenkins_home/workspace/frontend-unit-test-2 2917019ab455 /bin/cat
Docker container fe9a8942f1d9665a799c90ee796cdc47dcb73c1bfaf4bd09c515bc1ddb509109 started to host the build
$ docker exec --tty fe9a8942f1d9665a799c90ee796cdc47dcb73c1bfaf4bd09c515bc1ddb509109 env
[frontend-unit-test-2] $ docker exec --tty --user 0:0 fe9a8942f1d9665a799c90ee796cdc47dcb73c1bfaf4bd09c515bc1ddb509109 env BUILD_DISPLAY_NAME=#4 BUILD_ID=4 BUILD_NUMBER=4 BUILD_TAG=jenkins-frontend-unit-test-2-4 CLASSPATH= EXECUTOR_NUMBER=1 GIT_BRANCH=origin/master GIT_COMMIT=bb7291657427c118a5df4d97d070a7abb90f8f06 GIT_PREVIOUS_COMMIT=bb7291657427c118a5df4d97d070a7abb90f8f06 GIT_PREVIOUS_SUCCESSFUL_COMMIT=bb7291657427c118a5df4d97d070a7abb90f8f06 GIT_URL=https://github.com/npoirey/16AGR.git HOME=/root HOSTNAME=fe9a8942f1d9 HUDSON_HOME=/var/jenkins_home HUDSON_SERVER_COOKIE=23e53af9086f2739 JENKINS_SERVER_COOKIE=23e53af9086f2739 JOB_BASE_NAME=frontend-unit-test-2 JOB_NAME=frontend-unit-test-2 NODE_LABELS=master NODE_NAME=master NODE_VERSION=7.3.0 NPM_CONFIG_LOGLEVEL=info PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin TERM=xterm WORKSPACE=/var/jenkins_home/workspace/frontend-unit-test-2 /bin/sh -xe /tmp/hudson178227185989971526.sh
/bin/sh: 0: Can't open /tmp/hudson178227185989971526.sh
Build step 'Execute shell' marked build as failure
Stopping Docker container after build completion
$ docker kill fe9a8942f1d9665a799c90ee796cdc47dcb73c1bfaf4bd09c515bc1ddb509109
fe9a8942f1d9665a799c90ee796cdc47dcb73c1bfaf4bd09c515bc1ddb509109
$ docker rm --force fe9a8942f1d9665a799c90ee796cdc47dcb73c1bfaf4bd09c515bc1ddb509109
fe9a8942f1d9665a799c90ee796cdc47dcb73c1bfaf4bd09c515bc1ddb509109
Finished: FAILURE
由用户管理员启动
工作区建筑/var/jenkins_home/workspace/frontend-unit-test-2
>git rev parse——在工作树中#timeout=10
从远程Git存储库获取更改
>git config remote.origin.urlhttps://github.com/npoirey/16AGR.git #超时=10
从中获取上游更改https://github.com/npoirey/16AGR.git
>git——版本#超时=10
>git fetch--标记--进度https://github.com/npoirey/16AGR.git +refs/heads/*:refs/remotes/origin/*
>git rev parse refs/remotes/origin/master^{commit}#timeout=10
>git rev parse refs/remotes/origin/origin/master^{commit}#timeout=10
检出版本bb7291657427c118a5df4d97d070a7abb90f8f06(参考/遥控/原点/主控)
>git config core.sparsecheckout#timeout=10
>git签出-f bb7291657427c118a5df4d97d070a7abb90f8f06
>git版本列表bb7291657427c118a5df4d97d070a7abb90f8f06#超时=10
从./frontend//Dockerfile生成Docker映像。。。
$docker构建--文件/var/jenkins_home/workspace/frontend-unit-test-2/frontend/Dockerfile/var/jenkins_home/workspace/frontend-unit-test-2/frontend
将生成上下文发送到Docker守护程序93.18 kB
步骤1:来自节点:最新
--->d1699fb7d2bf
步骤2:维护人员Poirey Nicolas
--->使用缓存
--->787f355d0144
步骤3:WORKDIR/16AGR/前端
--->使用缓存
--->083aa873e30a
步骤4:暴露8080
--->使用缓存
--->53eb0ed184a9
步骤5:CMD npm安装
--->使用缓存
--->2917019ab455
成功构建2917019ab455
$docker run--rm--entrypoint/bin/true alpine:3.2
$docker run--tty--rm--entrypoint/sbin/ip阿尔卑斯山:3.2路线
$docker run--tty--detach--privileged--workdir/var/jenkins_home/workspace/frontend-unit-test-2--volume/var/jenkins_home:/var/jenkins_home:rw--volume/tmp:/tmp:rw--net桥--add host dockerhost:172.17.0.1--env BUILD DISPLAY_NAME=#4--env BUILD ID=4--env BUILD env BUILD NUMBER=4--env BUILD TAG jenkins-frontend-unit test 2-4--env CLASSPATH=--env EXECUTOR_NUMBER=1——env GIT_BRANCH=origin/master——env GIT_COMMIT=bb7291657427c118a5df4d97d070a7abb90f8f06——env GIT_PREVIOUS_COMMIT=bb7291657427c118a5df4d97d070a7abb90f8f06——env GIT_PREVIOUS_COMMIT=bb7291657427c118a5df4d97d070a7abb90f8f06——env GIT URL=https://github.com/npoirey/16AGR.git --env HUDSON_HOME=/var/jenkins_HOME--env HUDSON_SERVER_COOKIE=23e53af9086f2739--env JENKINS_SERVER_COOKIE=23e53af9086f2739--env JOB_BASE_NAME=frontend-unit-test-2--env JOB_NAME=frontend-unit-test-2--env NODE_LABELS=master--env NODE_NAME=master env-WORKSPACE=/var/JENKINS_home/WORKSPACE/frontend-unit-test-2 2917019ab455/bin/cat
Docker容器fe9a8942f1d9665a799c90ee796cdc47dcb73c1bfaf4bd09c515bc1ddb509109已开始承载生成
$docker exec——tty fe9a8942f1d9665a799c90ee796cdc47dcb73c1bfaf4bd09c515bc1ddb509109环境
[前端单元测试-2]$docker exec--tty--user 0:0 fe9a8942f1d9665a799c90ee796cdc47dcb73c1bfaf4bd09c515bc1ddb509109环境构建显示名称=#4构建ID=4构建编号=4构建标签=jenkins-frontend-unit-test-2-4类路径=执行者编号=1 GIT分支=源代码/主GIT提交=7291657427C118A5DF4D970A7F890F06GIT_PREVIOUS_COMMIT=bb7291657427c118a5df4d97d070a7abb90f8f06 GIT_PREVIOUS_COMMIT=bb7291657427c118a5df4d97d070a7abb90f8f06 GIT_COMMIT=bb7291657427c118a5df4d97d070a7abb90f8f06 GIT_URL=https://github.com/npoirey/16AGR.git HOME=/root HOSTNAME=fe9a8942f1d9 HUDSON\u HOME=/var/jenkins\u HOME HUDSON\u SERVER\u COOKIE=23e53af9086f2739 jenkins\u SERVER\u COOKIE=23e53af9086f2739JOB_BASE_NAME=frontend-unit-test-2 JOB_NAME=frontend-unit-test-2 NODE_LABELS=master NODE_NAME=master NODE_VERSION=7.3.0 NPM_CONFIG_LOGLEVEL=info PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/bin TERM=xterm WORKSPACE=/var/jenkins_home/WORKSPACE/frontend-test-2/bin/sh-xe/tmp/hudson178185989971526.sh
/bin/sh:0:无法打开/tmp/hudson178227185989971526.sh
生成步骤“执行shell”将生成标记为失败
生成完成后停止Docker容器
$docker kill fe9a8942f1d9665a799c90ee796cdc47dcb73c1bfaf4bd09c515bc1ddb509109
fe9a8942f1d9665a799c90ee796cdc47dcb73c1bfaf4bd09c515bc1ddb509109
$docker rm——强制fe9a8942f1d9665a799c90ee796cdc47dcb73c1bfaf4bd09c515bc1ddb509109
fe9a8942f1d9665a799c90ee796cdc47dcb73c1bfaf4bd09c515bc1ddb509109
完成:失败
如果删除构建步骤,则不会出现错误


我真的不明白我做错了什么:(

Npm install
是一个完成的命令,因此您的容器退出是正常的。我不认为这是问题所在,我只是尝试了相同的构建,但使用节点映像而不是dockerfile,并在相同的问题中运行。无法打开/tmp/hudson178227185989971526。sh我也尝试了完全相同的构建,但在jenkins安装的系统上很明显,我没有在docker中运行jenkins,但我看不出你希望容器做什么,nginx容器启动nginx,Wordpress容器启动Wordpress,但是
npm安装
ok,然后呢?如果你想坚持这个想法,y您可以执行npm安装;sleep infinity您可以查看Dockerfile的CMD和ENTRYPOINT指令,请参阅文档,此Dockerfile就是我用作开发环境的Dockerfile,我想让我的开发/ci环境保持不变。在jenkins中,我打算添加一个构建步骤来运行“npm测试”。这适用于本身不在容器中运行的jenkins。在这里,容器似乎是使用cat运行的,cat不应返回,然后在运行exec时失败,因为它找不到包含jenkins中设置的生成步骤的临时文件。我将有一个lo