【docker-compose.yml】.envに書いたのに反映されない

Docker

Why?

  db:
    image: postgres:13.1-alpine
    volumes:
      - ./tmp/db:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: $POSTGRES_USER
      POSTGRES_PASSWORD: $POSTGRES_PASSWORD
      POSTGRES_DB: $POSTGRES_DB
POSTGRES_USER=postgres
POSTGRES_PASSWORD=password
POSTGRES_DB=test-db
% docker compose config
...
  db:
    environment:
      POSTGRES_DB: ""
      POSTGRES_PASSWORD: ""
      POSTGRES_USER: ""
...
% docker compose up -d 
WARN[0000] The "POSTGRES_PASSWORD" variable is not set. Defaulting to a blank string. 
WARN[0000] The "POSTGRES_DB" variable is not set. Defaulting to a blank string. 
WARN[0000] The "POSTGRES_USER" variable is not set. Defaulting to a blank string. 

ちゃんと書いてるのになんで空文字になってまうんや!とかなり頭を悩ませましたが、
docker compose up -dするときのカレントディレクトリ内に.envがないとダメなんですね・・・

% cd ..
% docker compose config
...
  db:
    environment:
      POSTGRES_DB: test-db
      POSTGRES_PASSWORD: password
      POSTGRES_USER: postgres
...
この記事を書いた人

15歳からプログラミングを始め、現在は正社員+個人事業主でほぼ休まず労働
2018年に開発したアプリ「LIVLE」がTwitterで12000RTされる。(過去の栄光)
Flutter / Nuxt.js / Laravel / Go / React
お仕事依頼はこちらから⇢engineer@tepci.me

Tenma Endouをフォローする
Dockerプログラミング
Tenma Endouをフォローする
目に優しいエンジニアブログ

コメント