Reputation: 263
I'm trying to follow Docker docs and SO suggestions, but still getting "variable not set" errors on just trying to "docker-compose up db". Can someone please check my .env and yaml file? Both are in the same directory but it doesn't seem yml is reading .env???
.env:
FS_NAME=MY_BLOG_NAME
FS_REGION=us-east-2
DB_HOST=localhost
DB_USER=postgres
DB_PASS=$$323MY_PASS$&84
DB_NAME=postgres
docker-compose.yml:
version: '3.7'
volumes:
db_data:
x-shared_environment: &shared_environment
LOG_LEVEL: ${LOG_LEVEL:-debug}
DATABASE_HOST: ${DB_HOST}
DATABASE_NAME: ${DB_NAME}
DATABASE_USERNAME: ${DB_USERNAME}
DATABASE_PASSWORD: ${DB_PASSWORD}
services:
app:
image: MY_BLOG_NAME:latest
build:
context: .
environment:
<<: *shared_environment
FS_NAME: ${FS_NAME}
FS_REGION: ${FS_REGION}
depends_on:
- db
ports:
- '8080:8080'
db:
image: postgres:12.2-apline
volumes:
-db_data/var/lib/postrgresql/data/pgdata
environment:
PGDATA: /var/lib/postgresql/data/pgdata
POSTGRES_USER: {DB_USERNAME}
POSTGRESS_PASSWORD: {DB_PASSWORD}
POSTGRES_DB: {DB_NAME}
POSTGRESS_PASSWORD: {DB_PASSWORD}
ports:
-'5432:5432'
Upvotes: 1
Views: 657
Reputation: 4444
You need to specify the directory of your .env
file, add env_file
configuration for each service.
https://docs.docker.com/compose/environment-variables/
For exapmle:
db:
image: postgres:12.2-apline
volumes:
-db_data/var/lib/postrgresql/data/pgdata
env_file:
- ./.env
environment:
PGDATA: /var/lib/postgresql/data/pgdata
POSTGRES_USER: {DB_USERNAME}
POSTGRESS_PASSWORD: {DB_PASSWORD}
POSTGRES_DB: {DB_NAME}
POSTGRESS_PASSWORD: {DB_PASSWORD}
ports:
-'5432:5432'
Upvotes: 1