Wes*_*den 5 testing docker reactjs gitlab-ci
我有一个包含两个阶段的 Dockerfile;第一阶段从源代码构建反应应用程序,第二阶段复制构建并添加 NGINX 服务器:
FROM kkarczmarczyk/node-yarn as builder
COPY . /workspace
RUN set -ex \
yarn global add create-react-app \
&& yarn install \
&& GENERATE_SOURCEMAP=false yarn build
FROM nginx:mainline-alpine
COPY ./nginx-default.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /workspace/build /var/www/html/
Run Code Online (Sandbox Code Playgroud)
我也在使用 gitlab-ci,我希望有多个阶段:构建、测试和部署。但我不知道如何拆分构建和测试阶段,因为我使用的是多阶段 Dockerfile。问题是所有 JS 测试(针对 React)都需要在“纱线构建”执行之前运行,并且构建被复制到秒级 docker 阶段。
一个解决方案可能是yarn test在yarn build运行之前执行。但我真的很想有一个单独的测试 gitlab-ci 阶段。
这可能吗?或者我是否需要将我的 Dockerfile 阶段拆分为多个 Dockerfile?
你可能想要在 gitlab 中使用多个阶段的原因是快速失败。但是使用多阶段 docker 或 gitlab 阶段进行构建可以给您相同的结果,如果测试失败,您将无法进一步进行并获得堆栈跟踪。从一方面来说,docker 多阶段可能更方便,因为您始终可以调用前一个容器并重现/测试/修复错误。但总的来说,在 CI 中使用 docker-builder 模式只是不必要的复杂化,最好分离 docker 镜像并在 gitlab 阶段使用它们。
| 归档时间: |
|
| 查看次数: |
1841 次 |
| 最近记录: |