docker - echo 告诉我我的环境变量已定义,但 docker-compose 告诉我“未设置变量”。如何将它们传递给 docker-compose?
问题描述
我正在使用 Docker v19.03.13 。在我的外壳中,我定义了一些环境变量......
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 中定义的环境变量?
解决方案
正如评论中提到的那样,您确实分配了AZ_SQL_TP_DB=myDB
,这还不够。
您可以选择其中任何一个来使其正常工作。
选项1
$ export AZ_SQL_TP_DB=myDB $ docker-compose up -d
选项 2
$ AZ_SQL_TP_DB=myDB docker-compose up -d
或在下一个内容.env
的同一文件夹中添加文件:docker-compose.yaml
$ cat .env
AZ_SQL_TP_SRVR=localhost
AZ_SQL_TP_DB=myDB
$ docker-compose up -d
推荐阅读
- python - 我试图通过从客户端发送他想要发送到我的服务器的数据来创建代理服务器,然后我的服务器将其发送到想要的服务器
- html - 连续被视为一个
- python - 根据python中的日期过滤字典?
- python - 在 python 中使用 Multiprocessing 对具有多个参数的函数进行多次迭代,返回多个值
- node.js - JSON 转换仅返回 JSON 对象中的第一项
- python - 如何将这个 for 循环概括为任何长度?
- c++ - 在移动构造函数中切片对象
- css - 当数字图像(项目)可变时,如何将我的指示器项目居中在滑块中?
- ios - 将离子反应应用程序的 razorpay 网关与 iOS 中的 Ionic 4 和电容器集成
- android - 当我们不为更高的 API 创建新布局时会发生什么