docker-compose - 如何自定义生命周期环境名称作为 docker-compose.yaml 的一部分
问题描述
如何自定义生命周期环境名称作为 docker-compose.yaml 的一部分。我想在 .env 文件中指定环境名称,我希望它反映在 docker-compose.yaml 中,但这没有得到正确反映
volumes:
elasticsearch-data-dev:
networks:
elasticsearch-network-dev:
解决方案
您可以通过一个简单的 bash 脚本来实现这一点:
docker-compose.yaml
version: '3'
services:
app_${MYENV}:
image: busybox
container_name: app_${MYENV}
networks:
- network_${MYENV}
networks:
network_${MYENV}:
运行.sh
#!/bin/bash
MYENV=${1}
COMPOSE=`eval "echo \"$(cat docker-compose.yaml)\""`
echo "$COMPOSE" | docker-compose -f - up
./run.sh dev
./run.sh prod
示例运行:
$ ./run.sh dev
Starting app_dev ... done
$ docker ps
f33b113f9d2b ... app_dev
$ docker network ls
436386f4eb80 demo_network_dev bridge local
推荐阅读
- javascript - HTML 浏览器数据库中的 count 函数返回的计数值不正确
- reactjs - React Redux,替换状态历史
- c++ - boost::gil 是否支持 10 位图像?
- angular - Angular:stopImmediatePropagation()在keydown上不起作用
- c++ - Stringstream编译错误只发生在linux环境下
- algorithm - 我的对称加密算法安全吗?
- javascript - 重新选择时,Kendo Scheduler 不会触发更改事件
- javascript - 计算通过 JS 检查并显示在页面上的复选框总数
- arrays - 如何过滤聚合物中的重组数据(dom-repeat)
- java - 在python for Java中序列化复数列表