繁体   English   中英

Docker 中的 Jenkins 错误:CP 命令找不到目录

[英]Jenkins in Docker Error: CP Command Cannot Find Directory

我有一个在服务器上运行 Jenkins 的 docker 容器。 我正在尝试从 GitHub 获取代码并将内容从 Jenkins 管道复制到目标目录。

我的存储/var/jenkins_home/workspace/my-repo在这里: /var/jenkins_home/workspace/my-repo

我的目标目录是: /home/deploy/project

这是我的 cp 命令: cp -r . /home/deploy/peatio cp -r . /home/deploy/peatio

这是错误语句: cp: cannot create directory '/home/deploy/peatio': No such file or directory

更新:我在没有 Docker 的情况下安装了 Jenkins,我的用例运行良好。 这是由于在 Docker 容器中运行 Jenkins。 那么,问题是,我们如何通过在 Docker 容器内运行 copy 命令将某些内容从 Docker 容器复制到本地主机? 这甚至可能吗? 我知道docker cp并且它在 Docker 容器之外使用。

以防万一中间目录丢失,创建它/他们

mkdir -p /home/deploy/peatio
cp -r . /home/deploy/peatio

,不可能使用-v标志或-mount将容器内部复制到未绑定安装或主机和容器之间共享的其他词的主机位置。

在此处输入图片说明

你可以有一个解决方法。

将宿主机的两个目录与​​容器绑定。

  • 詹金斯之家
  • 用于工件或复制目的的另一个目录

您的 Jenkins 相关配置将保存到jenkins_host_path:/var/jenkins_home

挂载主机的空目录path_to_host_cp/:/jenkins_container_path_for_cp ,所以当你复制一些东西时,比如你的 git repo,将它复制到/jenkins_container_path_for_cp它将可供主机使用,如果你在主机位置更新新文件,只需运行rm容器内,然后cp -r . /home/deploy/peatio cp -r . /home/deploy/peatiocp -r . jenkins_container_path_for_cp cp -r . jenkins_container_path_for_cp

您还可以在容器启动时将文件和文件夹从一个位置复制到另一个位置以托管空目录,就好像有任何内容托管该目录一样,它将隐藏容器内容。

像这样


$ export JENKINS_HOME=/srv/jenkins

$ export TARGET_DIR=/home/deploy/peatio

$ docker run ***(ignore other important parameters) -v $JENKINS_HOME:/var/jenkins_home -v $TARGET_DIR:/home/deploy/peatio

重要参数: -v $TARGET_DIR:/home/deploy/peatio

  • 2.继续在jenkins容器内执行你想要的命令
$ docker exec -it jenkins bash
$ cp -r . /home/deploy/peatio

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM