dyl*_*zed 6 cloud environment-variables docker devops
我有一个带有生产 Dockerfile 的应用程序,它将我们的源代码复制到容器中,即:
COPY . /app
我想将此副本设置为有条件的,以便传入CONTEXT=环境变量来阻止/允许该行执行。那可能吗?
我在这里看到了相关帖子,但没有明确的答案。谢谢!
从这篇文章我发现 Docker-Compose 3.7 支持针对单个构建阶段。
因此,我创建了一个包含 2 个阶段的 Dockerfile,一个base用于设置容器的层,然后是一个 deploy复制到代码库中的层:
# BUILD STAGE 1 - BASE
FROM webdevops/php-apache:7.2-alpine as base
# Do stuff
# BUILD STAGE 2 - DEPLOY
FROM base as deploy
# Add project
COPY . /app
# Do other stuff
Run Code Online (Sandbox Code Playgroud)
然后我将我的开发配置docker-compose.yml为仅针对基础层,并为代码安装一个卷。
version: "3.7"
services:
app.base.img:
build:
context: .
target: base
volumes:
- ./:/app
container_name: app.base
Run Code Online (Sandbox Code Playgroud)
我的生产管道正常构建图像(包含两层)。
请注意 3.7 版本声明,显然它是必需的。
这正是我想要的,感谢所有对此的评论和建议!如果您认为这是不明智的,请随时发表评论。
| 归档时间: |
|
| 查看次数: |
9329 次 |
| 最近记录: |