Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tomcat ';docker cp';Jenkins docker容器中的命令将文件复制到目录中_Tomcat_Jenkins_Docker - Fatal编程技术网

Tomcat ';docker cp';Jenkins docker容器中的命令将文件复制到目录中

Tomcat ';docker cp';Jenkins docker容器中的命令将文件复制到目录中,tomcat,jenkins,docker,Tomcat,Jenkins,Docker,我正在docker容器中运行Jenkins服务器 我通过以下命令启动Jenkins容器: sudo docker run——名称jenkins-p8080:8080-v/var/run/docker.sock:/var/run/docker.sock-v/usr/bin/docker:/usr/bin/docker-d weizhou/jenkins 在Jenkins作业中,我希望将builded.war复制到本地机器(即从docker容器中),并启动另一个Tomcat docker服务器。但是

我正在docker容器中运行Jenkins服务器

我通过以下命令启动Jenkins容器:

sudo docker run——名称jenkins-p8080:8080-v/var/run/docker.sock:/var/run/docker.sock-v/usr/bin/docker:/usr/bin/docker-d weizhou/jenkins

在Jenkins作业中,我希望将builded.war复制到本地机器(即从docker容器中),并启动另一个Tomcat docker服务器。但是,在我使用命令
docker cp
之后,docker文件中的文件变成了目录,也就是说,rpm.war文件变成了rpm.war目录,其中没有任何内容。我应该如何解决这个问题,非常感谢

下面是我在jenkins作业中执行shell的脚本帖子

sudo docker exec tomcat  /usr/local/tomcat/bin/catalina.sh stop
sudo docker rm -f tomcat
sudo rm /home/rpm.war
sudo docker cp jenkins:/var/jenkins_home/workspace/rpm/target/rpm.war /home/
sudo chmod 777 /home/rpm.war
sudo docker run --name tomcat --link mysql:mysql  -p 80:8080 -v /home/rpm.war:/usr/local/tomcat/webapps/rpm.war --rm -d tomcat:7.0.75-jre7
以下是詹金斯控制台:

[rpm] $ /bin/sh -xe /tmp/hudson1380760968175739587.sh
+ sudo docker exec tomcat /usr/local/tomcat/bin/catalina.sh stop
+ sudo docker rm -f tomcat
tomcat
+ sudo rm /home/rpm.war
+ sudo docker cp jenkins:/var/jenkins_home/workspace/rpm/target/rpm.war /home/
+ sudo chmod 777 /home/rpm.war
+ sudo docker run --name tomcat --link mysql:mysql -p 80:8080 -v /home/rpm.war:/usr/local/tomcat/webapps/rpm.war --rm -d tomcat:7.0.75-jre7
205b8551375c1e3667965288d8d3d4240f8be765ea124e1ff57956e801509318
Finished: SUCCESS
而且rpm.war是一个目录,里面什么也没有

ubuntu@ip-172-31-66-12:/home$ ls -l
total 12
-rwxrwxrwx 1 root   root    368 Feb 24 09:23 rpmBuild.sh
drwxr-xr-x 2 root   root   4096 Feb 24 09:38 rpm.war
drwxr-xr-x 6 ubuntu ubuntu 4096 Feb 24 09:25 ubuntu
此外,脚本可以在本地计算机上正常运行,并且命令“docker cp”可以将文件真正复制为文件,而不是目录

此外,我使用类似的脚本在真实的Jenkins中运行,而不是在容器中运行,它确实可以工作,并且文件被复制为文件。类似的脚本是

sudo docker exec tomcat  /usr/local/tomcat/bin/catalina.sh stop
sudo docker rm -f tomcat
sudo rm /home/rpm.war
sudo cp /var/lib/jenkins/workspace/rpm/target/rpm.war /home/
sudo chmod 777 /home/rpm.war
sudo docker run --name tomcat --link mysql:mysql  -p 80:8080 -v /home/rpm.war:/usr/local/tomcat/webapps/rpm.war --rm -d tomcat:7.0.75-jre7
最后,我的jenkins Dockerfile:

FROM jenkins

USER root
RUN apt-get update \
  && apt-get install -y sudo maven\
  && rm -rf /var/lib/apt/lists/*
RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers

USER jenkins
RUN /usr/local/bin/install-plugins.sh bouncycastle-api:2.16.0 cloudbees-folder:5.17 structs:1.6 junit:1.20 antisamy-markup-formatter:1.5 pam-auth:1.3 windows-slaves:1.2 display-url-api:1.1.1 mailer:1.19 ldap:1.14 icon-shim:2.0.3 matrix-auth:1.4 token-macro:2.0 script-security:1.26 matrix-project:1.8 external-monitor-job:1.7 build-timeout:1.18 credentials:2.1.11 plain-credentials:1.4 workflow-step-api:2.9 credentials-binding:1.10 timestamper:1.8.8 resource-disposer:0.6 scm-api:2.0.7 workflow-api:2.11 workflow-basic-steps:2.4 ws-cleanup:0.32 ant:1.4 gradle:1.26 workflow-scm-step:2.3 ssh-credentials:1.13 git-client:2.2.1 jquery-detached:1.2.1 workflow-support:2.13 ace-editor:1.1 workflow-cps:2.27 git-server:1.7 workflow-cps-global-lib:2.6 pipeline-milestone-step:1.3 pipeline-build-step:2.4 pipeline-stage-step:2.2 pipeline-input-step:2.5 workflow-job:2.10 pipeline-graph-analysis:1.3 pipeline-rest-api:2.5 handlebars:1.1.1 momentjs:1.1.1 pipeline-stage-view:2.5 durable-task:1.13 workflow-durable-task-step:2.9 pipeline-model-api:1.0.2 pipeline-stage-tags-metadata:1.0.2 authentication-tokens:1.3 docker-commons:1.6 docker-workflow:1.10 pipeline-model-declarative-agent:1.0.2 branch-api:2.0.6 workflow-multibranch:2.12 pipeline-model-definition:1.0.2 workflow-aggregator:2.5 github-api:1.84 git:3.0.5 github:1.26.0 github-branch-source:2.0.3 pipeline-github-lib:1.0 github-organization-folder:1.6 mapdb-api:1.0.9.0 subversion:2.7.1 ssh-slaves:1.13 email-ext:2.57 build-token-root:1.4

sudo docker exec jenkins ls-l/var/jenkins_home/workspace/rpm/target/rpm.war的输出是什么。当源文件不存在时,经常会出现空文件夹。问题在这里解决。sudo docker exec jenkins ls-l/var/jenkins_home/workspace/rpm/target/rpm.war的输出是什么。当源文件不存在时,经常会出现空文件夹。问题在这里解决。