在我的CI管道(gitlab)中,有一个构建和一个end-end-testing阶段。在构建阶段,应用程序的文件将被创建。然后我想将生成的文件复制到e2e_testing容器中,以使用此应用程序进行一些测试。Docker/CI:访问在另一个阶段创建的nodeJS应用程序
如何将生成的文件(/ opt/project/build/core/bundle)复制到映像中?
对于e2e测试,我想使用nightwatchJS - 请参阅下面的e2e docker镜像。也许有可能在e2e图像中使用构建图像?
我需要做的是对生成的应用程序的NodeJS
我尝试
复制生成的文件e2e_testing
容器docker cp
命令nightwatchJS端对端测试。
build:
stage: build
before_script:
- meteor build /opt/project/build/core --directory
script:
- cd /opt/jaqua/build/core/bundle
- docker build -t $CI_REGISTRY_IMAGE:latest .
after_script:
- docker cp /opt/project/build/core/bundle e2e_testing:/opt/project/build/core/
但是这是行不通的,因为下一阶段(E2E)将创建从e2e:latest
图像的容器。所以在这个容器中没有bundle文件夹存在,所以这个示例脚本失败了。
e2e:
image: e2e:latest
stage: e2e
before_script:
- cd /opt/project/build/core/bundle && ls -la
script:
# - run nightwatchJS to do some e2e testing with the build bundle
E2E:最新的图像Dockerfile
FROM java:8-jre
## Node.js setup
RUN curl -sL https://deb.nodesource.com/setup_4.x | bash -
RUN apt-get install -y nodejs
## Nightwatch
RUN npm install -g nightwatch
从该图像创建一个名为e2e_testing
的容器,它运行所有的时间。所以在CI管道运行时,容器已经存在。
但是,当时这个图像是在应用程序文件不存在的情况下创建的,因为它们是在构建阶段生成的。所以我不能使用Dockerfile将这些文件放在Docker镜像中。
那么我怎样才能访问在e2e阶段的构建阶段生成的文件?
或者是有可能使用的生成图像($ CI_REGISTRY_IMAGE:最新)夜巡图像(E2E)内
https://github.com/moby/moby/pull/31257 – johnharris85
@ johnharris85我没有看到,你想向我展示哪个部分... :-( – user3142695
什么应用解析这些yml文件?ie你使用什么CI工具? – BMitch