docker - Dockerfile 中的条件复制?

标签 docker environment-variables cloud devops

我有一个带有生产 Dockerfile 的应用程序,它将我们的源代码复制到容器中,即:COPY . /app我想让这个副本有条件,以便传入 CONTEXT=环境变量阻止/允许此行执行。那可能吗?
我看到了 related posts在这里,但没有明确的答案。谢谢!

最佳答案

不可以。您应该在构建最终图像之前对您的项目进行预处理。
多阶段构建可能会帮助您做到这一点:

FROM debian AS builder
ARG CONTEXT
WORKDIR /final
COPY . /app
RUN bash -c "[ '$CONTEXT' = '1' ] || cp -rfv /app/* /final/"

FROM debian
COPY --from=builder /final /app
在这个例子中,传递 --build-arg CONTEXT=1防止它填充 /app文件夹中的最终图像,从而将其从最终图像中删除。

关于docker - Dockerfile 中的条件复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63728819/

相关文章:

Windows Azure Toolkit for Java 插件无法在 Mac 上运行

azure - 列出 Azure 云中的所有实例终结点

cryptography - 随机数和时间戳如何防止重放攻击

Docker compose 没有启动所有容器(可能与 Flask 相关?)

c - 在 C 程序中为 jemalloc 设置 MALLOC_CONF 环境变量不起作用

docker - 传入变量或回答 Dockerfile

java - 如何测试 Tomcat 的 JAVA_HOME 变量设置是否正确

C - 将最后一个设置为 NULL 时数组值消失

docker - 无法以非 root 用户身份在 DockerFile 中解压缩 zip 文件

docker - 在docker-compose期间,Kibana数据已丢失