🎉
Docker Compose 'services.web.environment.0 must be a string' エラー解決方法
背景
docker compose
コマンドを実行するとservices.web.environment.0 must be a string
というエラーが起きることがあった。エラー解決した経緯を残します。
エラー発生時
docker-compose.ymlファイルを編集した後コマンドを実行すると
powershell
$ docker compose up -d --build
services.web.environment.0 must be a string
$ docker compose down
services.web.environment.0 must be a string
$ docker compose build
services.web.environment.0 must be a string
と表示された。
"services"、"web"、"environment"って書いてあるのでdocker-compose.yml
のwebサービス配下にあるenvironment部分を見直し。
docker-compose.yml
version: '3'
services:
# アプリケーションの実行環境
web:
# (省略)
environment:
- DATABASE_URL: postgres://admin:password@db:5432/mydatabase
# (省略)
db:
# (省略)
見た感じ合ってそうなんだけど...
エラー解決時
環境変数の先頭-
を削除したらエラー解消するみたい。
なぜ-
はダメなのかすぐわからなかったので後で調べてみます。
docker-compose.yml
version: '3'
services:
# アプリケーションの実行環境
web:
# (省略)
environment:
DATABASE_URL: postgres://admin:password@db:5432/mydatabase # "- "を削除
# (省略)
db:
# (省略)
動作確認
powershell
$ docker compose build
[+] Building 1.9s (6/6) FINISHED
Discussion