Docker 多阶段:在后续阶段共享命令

时间:2021-03-26 14:55:34

标签: docker

我正在尝试为我的 python 应用程序的生产和开发映像制作一个多级 Dockerfile。
目前我有 2 个文件,Dockerfile.devDockerfile.prod。除了中间的几行(需求部分)之外,它们几乎相同。随着 Dockerfile 的发展,很容易遗漏一些东西,而很难让它们保持同步。

理想情况下我会得到这样的东西:

FROM python as base_no_code_image
# install core dependencies
RUN apt update && apt install -y --no-install-recommends git gcc && apt clean
COPY ./requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir --upgrade pip && pip install --no-cache-dir -r requirements.txt


FROM base_no_code_image as dev_no_code_image
# install dev specific deps, test suit, automated docs...
COPY ./requirements-dev.txt /app/requirements-dev.txt
RUN pip install --no-cache-dir -r requirements-dev.txt


FROM dev_no_code_image as dev_image
FROM base_no_code_image as prod_image
# docker instruction for dev_image *and* prod_image
ADD . /app
# expose the same ports, volumes, envs, entrypoint, cmd...

# with that listing, `dev_image` is same as `dev_no_code_image`, without `ADD . /app` and other stuff

关于如何实现它的任何想法?或者我如何在不重复的情况下重写它?

0 个答案:

没有答案
相关问题