此问题基于a previous question on the same topic
的最佳答案我的问题是,在我的自定义/docker-entrypoint-initdb.d/ init脚本中,如何引用在docker-compose的.env文件中声明的env变量?含义,除了MONGO_INITDB_ROOT_USERNAME和MONGO_INITDB_ROOT_PASSWORD之外的env变量。
例如:
mongo --eval "db.getSiblingDB('sibling').createUser({user: '$SIBLING_USER', pwd: '$SIBLING_PASSWORD', roles: [{ role: 'readWrite', db: 'sibling' }]})"
答案 0 :(得分:0)
我使用NGINX为反向代理做了以下操作,其中基于env变量加载了不同的配置文件。
多克尔-compose.yml:
https-proxy:
build:
context: ./https-proxy
dockerfile: ./Dockerfile
args:
- MY_VAR=TRUE
Dockerfile:
FROM nginx
ARG MY_VAR
ENV MY_VAR=${MY_VAR}
RUN bash ./etc/nginx/config.sh
config.sh:
#!/bin/bash
if [ $MY_VAR == true ]; then
echo 'My Var is True'
else
echo 'My Var is False'
您还可以在Docker-compose.yml之外定义一个.env文件,这样您就不必更改该文件,只在Docker-compose寻找的其他地方定义值