詹金斯在Docker错误:CP命令无法找到目录

时间:2019-09-07 22:05:34

标签: git docker jenkins copy cp

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

我的存储库已在此处克隆:/var/jenkins_home/workspace/my-repo

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

这是我的cp命令: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容器外使用。

3 个答案:

答案 0 :(得分:0)

以防万一中间目录丢失,create it/them

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

答案 1 :(得分:0)

No,无法使用-v标志或-mount从容器内部复制到未绑定挂载或主机与容器之间共享的其他词的主机位置。

enter image description here

您可以为此找到解决方法。

使用容器绑定主机的两个目录。

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

您与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/peatiocp -r . jenkins_container_path_for_cp

您还可以通过入口点在容器启动时将文件和文件夹从一个位置复制到另一个位置,以托管空目录,就好像该目录中有什么主机将隐藏容器内容一样。

答案 2 :(得分:0)

like this


$ 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