我希望能够在docker-compose.yml中使用env变量,并在docker-compose时传入值。这就是例子。我今天使用基本的docker run命令来执行此操作,该命令包装在我自己的脚本中。没有任何这样的bash包装器,有没有办法通过compose实现它?
proxy: hostname: $hostname volumes: - /mnt/data/logs/$hostname:/logs - /mnt/data/$hostname:/data
template.yml
docker-compose.yml
来源env.sh; rm -rf docker-compose.yml; envsubst <“ template.yml”>“ docker- compose.yml”;
docker-compose.yml将使用正确的环境变量值生成一个新文件。
示例template.yml文件:
oracledb: image: ${ORACLE_DB_IMAGE} privileged: true cpuset: "0" ports: - "${ORACLE_DB_PORT}:${ORACLE_DB_PORT}" command: /bin/sh -c "chmod 777 /tmp/start; /tmp/start" container_name: ${ORACLE_DB_CONTAINER_NAME}
样本env.sh文件:
#!/bin/bash export ORACLE_DB_IMAGE=<image-name> export ORACLE_DB_PORT=<port to be exposed> export ORACLE_DB_CONTAINER_NAME=ORACLE_DB_SERVER