AWS 代码管道没有获取环境变量

AWS code pipeline not getting environment variables

我正在使用 docker 化的 AWS 代码管道部署我的 Django 应用程序,我将我的环境变量存储在一个环境文件中用于本地开发,但对于代码管道,我将它们全部设置在环境变量中但变量仍在 None.

docker-compose.yml

version: "3.8"

services:
  db:
    container_name: db
    image: "postgres"
    restart: always
    volumes:
      - postgres-data:/var/lib/postgresql/data/

  app:
    container_name: app
    build:
      context: .
    restart: always
    volumes:
      - static-data:/vol/web
    depends_on:
      - db

  proxy:
    container_name: proxy
    build:
      context: ./proxy
    restart: always
    depends_on:
      - app
    ports:
      - 80:8000
    volumes:
      - static-data:/vol/static

volumes:
  postgres-data:
  static-data:

在 Django 中获取环境变量,例如:

os.environ.get('FRONTEND_URL')

您可以在 docker 组合中指定 env 文件以及相对路径。

....
....
app:
    container_name: app
    build:
      context: .
    restart: always
    env_file:
    - <web-variables1.env>
    volumes:
      - static-data:/vol/web
    depends_on:
      - db
....
....

Refer more details at documentation

就我而言,我将所有环境变量放入我的 AWS CodeBuild 环境变量中,并在我的 docker 环境中调用它们,如下所示。

version: "3.8"

services:
  db:
    container_name: db
    image: "postgres"
    restart: always
    volumes:
      - postgres-data:/var/lib/postgresql/data/
    environment:
       - VARIABLE_NAME: ${VARIABLE_NAME}