我想在 docker compose 檔案中使用我的環境變數。當我嘗試運行它時,那里的每個變數都會出現這個錯誤,就像它們沒有被定義一樣:
The password variable is not set. Defaulting to a blank string.
一些背景關系:
![Docker compose 不會使用 .env 變數 [NodeJS, Docker]](https://img.uj5u.com/2022/01/26/84483d97c42a4ae7a2a324323c6394c3.png)
碼頭工人組成:
version: '3.3'
services:
mysqldb:
image: mysql:8
restart: always
env_file: config.env
environment:
- MYSQL_ROOT_PASSWORD=$password
- MYSQL_DATABASE=$database
ports:
- $db_port:$db_docker_port
volumes:
- db:/var/lib/mysql
app:
depends_on:
- mysqldb
build: ./
restart: unless-stopped
env_file: config.env
ports:
- $port:$port_docker
environment:
- DB_HOST=mysqldb
- DB_USER=$user
- DB_PASSWORD=$password
- DB_NAME=$database
- DB_PORT=$db_docker_port
stdin_open: true
tty: true
volumes:
db:
配置.env:
database=dbname
host=localhost
user=user
password=password
port=5005
port_docker=5004
db_port=3306
db_docker_port=3307
我是否錯誤地匯入了 config.env 檔案?
uj5u.com熱心網友回復:
應該呼叫您的環境變數檔案.env,并使用語法來使用變數${password}。
當您希望在容器內設定變數時,使用您完成它的方式 - 使用env_file陳述句。當你這樣做時,你不能在 docker-compose 檔案中使用它們。
您可以洗掉 docker-compose 檔案中的 env_file 陳述句,除非您也需要其中的變數。但看起來您使用 docker-compose 檔案將它們全部傳遞。
uj5u.com熱心網友回復:
試試這個語法
env_file:
- config.env
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/421302.html
標籤:
