如何在Docker中回显环境变量

bix*_*e57 4 docker docker-compose

我的docker-compose.yml是:

version: '2'

volumes:
  postgres_data: {}
  postgres_backup: {}

services:
  postgres:
    build: ./compose/postgres
    volumes:
      - postgres_data:/var/lib/postgresql/data
      - postgres_backup:/backups
    env_file: .env

  django:
    build:
      context: .
      dockerfile: ./compose/django/Dockerfile
    user: django
    depends_on:
      - postgres
      - redis
    command: /gunicorn.sh
    env_file: .env

  nginx:
    build: ./compose/nginx
    depends_on:
      - django

    ports:
      - "0.0.0.0:80:80"


  redis:
    image: redis:latest
    restart: always
Run Code Online (Sandbox Code Playgroud)

在我的.env文件中,我有:

# PostgreSQL
POSTGRES_PASSWORD=mysecretpass
POSTGRES_USER=postgresuser
Run Code Online (Sandbox Code Playgroud)

如何测试是否有效设置了环境变量?

我试过在远程计算机上运行tu:

docker run sorbetcitron_django echo $POSTGRES_USER
Run Code Online (Sandbox Code Playgroud)

其中sorbetcitron_django是我的django映像,但不输出任何内容。

BMi*_*tch 5

我会用:

docker-compose run postgres env
Run Code Online (Sandbox Code Playgroud)

如果将$ POSTGRES_USER传递给cli,它将由主机上的shell解释,如果对进行转义$,则需要评估行以使shell解析$容器内部。