我该如何在
对于每个变体(例如dev,prod...),我都有一个包含2个Docker文件的多阶段构建:
- dev:
根据compose-file doc,我可以指定一个Dockerfile进行构建。
但是我如何在docker-compose.yml中指定2个Dockerfile(用于多阶段构建)?
docker-compose.yml
中指定多阶段构建?对于每个变体(例如dev,prod...),我都有一个包含2个Docker文件的多阶段构建:
- dev:
Dockerfile.base
+ Dockerfile.dev
- 或者 prod: Dockerfile.base
+ Dockerfile.prod
文件Dockerfile.base
(适用于所有变体):FROM python:3.6
RUN apt-get update && apt-get upgrade -y
RUN pip install pipenv pip
COPY Pipfile ./
# some more common configuration...
文件 Dockerfile.dev
:
FROM flaskapp:base
RUN pipenv install --system --skip-lock --dev
ENV FLASK_ENV development
ENV FLASK_DEBUG 1
文件 Dockerfile.prod
:
FROM flaskapp:base
RUN pipenv install --system --skip-lock
ENV FLASK_ENV production
没有docker-compose,我可以这样构建:
# Building dev
docker build --tag flaskapp:base -f Dockerfile.base .
docker build --tag flaskapp:dev -f Dockerfile.dev .
# or building prod
docker build --tag flaskapp:base -f Dockerfile.base .
docker build --tag flaskapp:dev -f Dockerfile.dev .
根据compose-file doc,我可以指定一个Dockerfile进行构建。
# docker-compose.yml
version: '3'
services:
webapp:
build:
context: ./dir
dockerfile: Dockerfile-alternate
但是我如何在docker-compose.yml中指定2个Dockerfile(用于多阶段构建)?