我有一个带有生产 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/