这似乎是重复的问题?但我认为不是,而且是。我试过谷歌。
这就是情况,我想用Gogs和Drone建立一个CI管道,用他们的漂亮文档,我已经建立了它。但是现在,我卡住了:如何将文件从容器复制到容器中的主机。下面是我的无人机 YML 配置。
pipeline:
build:
image: node:7
commands:
- cd client
- npm config set registry https://registry.npm.taobao.org
- npm install --no-optional
- yarn run build
- sudo docker cp $(sudo docker ps -alq):$PWD/build /var/www/react/
CI 以错误结尾:
/bin/sh:sudo:未找到
在没有 sudo 的情况下尝试后,错误继续:
/bin/sh: 码头工人: 未找到
我找到的答案都是关于从 shell 在主机中运行的容器将文件复制到主机。 但是现在我尝试运行的命令在容器中,所以我该怎么办? 或者我错过了什么。
您可以在容器上装载卷 - 卷是从主机到容器的目录映射 - 两者之间的共享文件夹
在容器中,然后将所需的文件复制到共享文件夹,主机可以访问共享文件夹中的文件。
在装载完成之前,请勿将文件复制到共享文件夹中。如果这样做,文件将无法访问。
以下是有关卷的文档:
https://docs.docker.com/storage/volumes/#create-and-manage-volumes