【发布时间】:2021-01-30 00:06:48
【问题描述】:
我正在使用 Docker v19.03.13 。在我的 shell 中,我定义了一些环境变量 ...
davea$ echo $AZ_SQL_TP_SRVR
localhost
davea$ echo $AZ_SQL_TP_DB
myDB
我想在我的 docker-compose.yml 文件中引用这些内容,该文件位于...
version: "3.2"
services:
sqlserver-db:
build:
context: ./
args:
- AZ_SQL_TP_SRVR=${AZ_SQL_TP_SRVR}
- AZ_SQL_TP_PORT=1433
- AZ_SQL_TP_DB=${AZ_SQL_TP_DB}
- AZ_SQL_TP_USERNAME=${AZ_SQL_TP_USERNAME}
- AZ_SQL_TP_PASSWORD=${AZ_SQL_TP_PASSWORD}
container_name: sqlserver-db
ports:
- ${AZ_SQL_TP_PORT}:1433
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=${AZ_SQL_TP_PASSWORD}
- TZ=${TZ}
volumes:
- ../../mydb/mypb:/sqlscripts
tty: true
command: /bin/bash entrypoint.sh
但是当我运行我的 docker 实例时,我收到这些警告,抱怨无法找到变量 ...
davea$ docker-compose up -d
WARNING: The AZ_SQL_TP_SRVR variable is not set. Defaulting to a blank string.
WARNING: The AZ_SQL_TP_DB variable is not set. Defaulting to a blank string.
我还需要做什么才能让我的 docker-compose 文件识别我在 shell 中定义的环境变量?
【问题讨论】:
-
不知道 docker,但如果它在新的子 shell 中运行,它可能找不到 env 变量。在这种情况下,导出变量以便子 shell 也可以访问变量可能会有所帮助。
标签: docker shell docker-compose environment-variables