我是新手docker,我正在寻找一种根据环境在 docker 容器中执行命令的方法。
在 Dockerfile 中,我有 2 个命令,command_a 和 command_b。如果env = 'prod'运行command_a,则运行command_b。我怎样才能实现这个目标?
我尝试如下:
RUN if [ $env = "prod" ] ; then echo command_a; else echo cpmmand_b; fi;
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现所需的行为?
PS:我知道回声不应该在那里。
Docker 17.05 及更高版本支持一种使用多阶段构建和构建参数的条件。看看https://medium.com/@tonistiigi/advanced-multi-stage-build-patterns-6f741b852fae
来自博客文章:
ARG BUILD_VERSION=1
FROM alpine AS base
RUN ...
FROM base AS branch-version-1
RUN touch version1
FROM base AS branch-version-2
RUN touch version2
FROM branch-version-${BUILD_VERSION} AS after-condition
FROM after-condition
RUN ...
Run Code Online (Sandbox Code Playgroud)
然后使用docker build --build-arg BUILD_VERSION=value ...
| 归档时间: |
|
| 查看次数: |
6121 次 |
| 最近记录: |