docker - 使用 docker 多阶段构建强制目标参数?
问题描述
我们在 CI 环境中使用 docker 容器化我们的构建管道。我们有一个多阶段构建的设置,包含(简化的)Dockerfile。这个想法是,根据触发器(分支类型),docker build
使用相关--target
参数运行。例如,部署阶段应该只在合并到主触发器发生时发生。
我们使用以下命令调用 docker 构建docker build --target build-phase
:但是,为了避免后面的阶段被意外执行,如何更改 dockerfile 以使target
参数强制?
FROM node:10.16 as build-phase
WORKDIR /app/
COPY . /app
RUN npm ci
RUN npm run build
### UNIT TEST PHASE ###
FROM build-phase as unit-test-phase
# Install java for firebase emulator
RUN apt-get update && apt-get install -y openjdk-8-jdk
# Run tests
RUN npm run ci-test
### INTEGRATION TEST PHASE ###
FROM unit-test-phase as int-test-phase
RUN npm run ci-int-test
### DEPLOY PHASE ###
FROM int-test-phase as deploy-phase
RUN ./deploy.sh
解决方案
推荐阅读
- mysql - MySQL 根据 SUM 和 GROUP BY 计算年份之间的销售额百分比变化
- mongoose - 我想保存到猫鼬列表的开头
- catia - C# - 如何使用环境细节启动 CATIA
- c# - 将参数传递给匿名 Func
- python - 时间数据与格式“'%H:%M.%S%f'”不匹配
- r - 如何在 dartR 中绘制 Ho v Hs?
- asterisk - 是否有未服务号码的 Sip 代码?
- c# - 表单未作为活动窗口打开
- android - Android 资源链接失败
- git - svn-remote.svn: remote ref 'xx' *:refs/remotes/svn/tags/*' (tags) 必须以 'refs/' 开头