从docker-compose.yml重写Dockerfile参数
在docker-compose.yml中设置默认值时,无法覆盖docker-compose.yml中的Dockerfile参数 如果用户只是运行deDockerFile,我希望docker不要破坏任何参数,在docker-compose.yml,我希望设置一个更好的体系结构 这是我的Dockerfile:从docker-compose.yml重写Dockerfile参数,docker,docker-compose,Docker,Docker Compose,在docker-compose.yml中设置默认值时,无法覆盖docker-compose.yml中的Dockerfile参数 如果用户只是运行deDockerFile,我希望docker不要破坏任何参数,在docker-compose.yml,我希望设置一个更好的体系结构 这是我的Dockerfile: FROM python:3.6 as flask_api LABEL maintainer 'https://about.me/leandro.garcias' ARG DEBUG=Fals
FROM python:3.6 as flask_api
LABEL maintainer 'https://about.me/leandro.garcias'
ARG DEBUG=False
# BD Config
ARG DATABASE_URL='sqlite:///data/app.db'
# Max register per page, when you try to get all
ARG MAX_PER_PAGE=25
# Collect log errors. https://sentry.io
ARG COLLECT_LOG_ERRORS=False
ARG SENTRY_DSN=''
RUN adduser api
USER api
WORKDIR /home/api
COPY requirements.txt manage.py contrib/boot.sh ./
COPY tests tests
COPY app app
RUN mkdir data
ENV PYTHONUNBUFFERED 1
ENV DEBUG $DEBUG
ENV DATABASE_URL $DATABASE_URL
ENV MAX_PER_PAGE $MAX_PER_PAGE
ENV COLLECT_LOG_ERRORS $COLLECT_LOG_ERRORS
ENV SENTRY_DSN $SENTRY_DSN
RUN python -m venv venv
RUN venv/bin/pip install -r requirements.txt
CMD bash boot.sh
EXPOSE 5000:5000
这是我的docker-compose.yml:
version: '3'
volumes:
local_data:
data:
networks:
web:
app:
db:
services:
frontend:
image: nginx:1.13
volumes:
- ./contrib/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- 80:80
networks:
- web
- app
depends_on:
- app
app:
image: flask_api
restart: always
volumes:
- local_data:/home/api/data
networks:
- app
- db
depends_on:
- db
build:
context: .
args:
- DEBUG = False
# BD Config
- DATABASE_URL = postgres://postgres:@db:5432/people
# Max register per page, when you try to get all
- MAX_PER_PAGE = 25
# Collect log errors. https://sentry.io
- COLLECT_LOG_ERRORS = False
- SENTRY_DSN = ''
db:
image: postgres:9.6
volumes:
- data:/var/lib/postgresql/data
networks:
- db
environment:
- POSTGRES_DB=people
我需要帮助…我找到了解决方案!只需设置环境值即可。:-)
您看到了哪些错误。包括您为构建映像而运行的命令及其输出,以及您为查看未应用的ARG而运行的命令。我认为您需要使用冒号(:)而不是等号(=)。添加对官方文档的引用-“使用ENV指令定义的环境变量始终覆盖同名的ARG指令”
app:
image: flask_api
environment:
- DEBUG=False
# BD Config
- DATABASE_URL=postgres://postgres:@db:5432/people
# Max register per page, when you try to get all
- MAX_PER_PAGE=25
# Collect log errors. https://sentry.io
- COLLECT_LOG_ERRORS=False
- SENTRY_DSN=''