繁体   English   中英

Docker 撰写不阅读环境

[英]Docker Compose not reading env

这是一个经常被问到的问题。 我之前曾问过它,但在不同的错误条件下,但我似乎按照关于该主题的所有其他帖子所做的一切都是正确的,所以我转而寻求建议。 再次。

我有以下docker-compose.yml

version: "3.9"

services:

  projects:
    image: repo/apv_projects:2
    ports:
      - "27035:27035"
    environment:
      - JWT_SECRET_KEY_PROJECTS=${JWT_SECRET_KEY_PROJECTS}
      - PROJECTS_HOST=${PROJECTS_HOST}
      - PROJECTS_PORT=${PROJECTS_PORT}
      - PROJECTS_DB_HOST=${PROJECTS_DB_HOST}
    platform: "linux/amd64"
    depends_on:
      - mongodb
    volumes:
      - projects_data:/app
    links:
      - mongodb

  mongodb:
    image: repo/apv_projects_db:1
#    command: [--auth]
    ports:
      - 27017:27017
    environment:
      - MONGO_INITDB_DATABASE=$MONGO_INITDB_DATABASE
      - MONGO_INITDB_ROOT_USERNAME=$MONGO_INITDB_ROOT_USERNAME
      - MONGO_INITDB_ROOT_PASSWORD=$MONGO_INITDB_ROOT_PASSWORD
    platform: "linux/amd64"
    volumes:
      - mongodb_data:/app/data/mongodb
volumes:
  projects_data:
  mongodb_data:

我有以下.env文件:

PROJECTS_HOST='127.0.0.1'
PROJECTS_PORT=27035
PROJECTS_DB_HOST='mongodb'
PROJECTS_DB_PORT=27017
MONGO_INITDB_DATABASE=apv
MONGO_INITDB_ROOT_USERNAME=admin
MONGO_INITDB_ROOT_PASSWORD=password

我运行以下命令:

docker compose --env-file .\.env up --build

但是 api(烧瓶)在127.0.0.1:5000上启动。

Dockerfile看起来像这样:

FROM python:3.9.12-slim

RUN apt-get update
RUN apt-get -y install sudo
RUN addgroup app && adduser -system app -ingroup app
RUN usermod -a -G sudo app
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
USER app

WORKDIR /app
RUN sudo mkdir data

COPY . .

RUN python3 -m pip install --upgrade pip
RUN pip3 install -r requirements.txt

CMD python3 api.py

EXPOSE 27017
EXPOSE 27035

然而结果是容器中的环境变量没有设置。 当我跑步时:

docker exec container env

我得到以下 output:

...
PROJECTS_HOST=
PROJECTS_PORT=
PROJECTS_DB_HOST=
...

以前的错误是我以sudo ( post ) 启动了 api。 不过现在这不是问题。

我已经设法解决了这个问题。 它与行尾有关。 .env文件是在 Mac 上创建的,所以它有CR行结尾,但我是在linux/amd64平台上构建的,所以需要有LF行结尾。 这导致环境变量被读取为单个字符串,因此根本没有设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM