Node.js 如何将文件从当前docker容器复制到另一个容器
我正在使用nodejs应用程序构建一个docker容器,该应用程序将从meteorJS构建。对于构建,使用一个shell runner(`meteor build/opt/project/build/core--directory),因为这都是在gitlab CI中完成的Node.js 如何将文件从当前docker容器复制到另一个容器,node.js,docker,dockerfile,Node.js,Docker,Dockerfile,我正在使用nodejs应用程序构建一个docker容器,该应用程序将从meteorJS构建。对于构建,使用一个shell runner(`meteor build/opt/project/build/core--directory),因为这都是在gitlab CI中完成的 build: stage: build tags: - deploy before_script: - docker login -u gitlab-ci-token -p $CI_JOB_TOKE
build:
stage: build
tags:
- deploy
before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- meteor npm install
- meteor build /opt/project/build/core --directory
script:
- cd /opt/project/build/core/bundle
- docker build -t $CI_REGISTRY_IMAGE:latest .
因此,应用程序的文件现在位于/opt/project/build/core
。现在我想将这些文件复制到另一个docker映像(project-e2e:latest)
我试着去做
docker cp /opt/project/build/core/bundle project-e2e:latest/opt/project/build/core
但这给了我一个错误
Error response from daemon: No such container: project-e2e
但我看到,容器正在运行:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a238132e37a2 project-e2e:latest "/bin/bash" 14 hours ago Up 14 hours clever_kirch
可能问题是,我正在尝试从shell runner docker映像中复制,而目标项目-e2e是“外部的”?如果您想将生成的文件复制到容器中,可以使用docker进行复制:
docker cp-nightwatch:/opt/project/build/core/your_文件
基本上,这种模式是:
docker cp
如果源/目标是容器,则必须使用:
:
源和目标是交换的,不是吗?您可以用两种方式使用它们。。取决于源/目标的位置。它不工作。为了更好地理解,我更新了帖子。问题是您没有为您的容器指定名称,容器名称!=图像的名称,在这种情况下,您应该尝试使用容器的ID。