#docker-compose #environment-variables #string-interpolation
Вопрос:
Моя информация:
- ОС: Манджаро
- Ядро: 5.14.7-2-МАНДЖАРО
- Докер: 20.10.8-1
- Докер-Сочинение: 1.29.2-1
Мой частичный docker-compose.yml
файл:
version: "3.8"
services:
db:
build:
context: ./db
container_name: cyp-db
restart: unless-stopped
env_file:
- ./config/db.env
ports:
- 5442:5432
networks:
cyp-net:
ipv4_address: 172.27.0.2
volumes:
- ./db/data:/var/lib/postgresql/data
graphql:
build:
context: ./graphql
container_name: cyp-graphql
restart: unless-stopped
env_file:
- ./config/graphql.env
depends_on:
- db
networks:
cyp-net:
ipv4_address: 172.27.0.3
ports:
- 5000:5000
command: [
"--connection", "postgres://${NAME_ROLE}:${PWD_ROLE}@172.27.0.2:5432/${DB_NAME}",
"--owner-connection", "postgres://${NAME_ADMIN}:${PWD_ADMIN}@172.27.0.2:5432/${DB_NAME}",
"--watch",
"--schema", "${DEFAULT_SCHEMA}",
"--default-role", "${DEFAULT_ROLE}",
"--jwt-secret", "${JWT_SECRET}",
"--jwt-token-identifier", "${JWT_TOKEN_ID}",
"--append-plugins", "@graphile-contrib/pg-simplify-inflector",
"--simple-collections", "only",
"--enhance-graphiql"
]
networks:
cyp-net:
driver: bridge
ipam:
config:
- subnet: 172.27.0.0/16
Мое db.env
досье:
POSTGRES_DB=mydb
POSTGRES_USER=dummy
POSTGRES_PASSWORD=dummy
Мое graphql.env
досье:
NAME_ROLE=any_role
PWD_ROLE=secret
NAME_ADMIN=dummy
PWD_ADMIN=secret
DB_NAME=mydb
JWT_SECRET=super_secret
JWT_TOKEN_ID=token
DEFAULT_ROLE=userx
DEFAULT_SCHEMA=chesu
Описание проблемы
- Мой сервис
db
работает нормально, и его файл ENV считывается правильно, - Мой сервис
graphql
не работает, потому что его ENV-файл не читается, я получил эти сообщения:
WARNING: The NAME_ROLE variable is not set. Defaulting to a blank string.
WARNING: The PWD_ROLE variable is not set. Defaulting to a blank string.
WARNING: The DB_NAME variable is not set. Defaulting to a blank string.
WARNING: The NAME_ADMIN variable is not set. Defaulting to a blank string.
WARNING: The PWD_ADMIN variable is not set. Defaulting to a blank string.
WARNING: The DEFAULT_ROLE variable is not set. Defaulting to a blank string.
WARNING: The JWT_SECRET variable is not set. Defaulting to a blank string.
WARNING: The JWT_TOKEN_ID variable is not set. Defaulting to a blank string.
cyp-db is up-to-date
Starting cyp-graphql ... done
- Если я скопирую содержимое
./config/graphql.env
в./.env
, то сервис запустится без каких-либо проблем.
Что происходит?