本文共 1783 字,大约阅读时间需要 5 分钟。
每次部署必需要修改的配置从交付件里独立出来,通过docker-compose传变量覆盖原有配置,记录下, 以备查阅
[root@test03 test]# cat docker-compose.yml version: '2'services: mysql: image: test_db:v1 container_name: xx-mysql restart: always networks: - nets environment: - MYSQL_ROOT_PASSWORD=xxx0209 ports: - 3306:3306 volumes: - /opt/data/mysql:/var/lib/mysql:z redis: image: test_redis:v1 container_name: xx-redis restart: always networks: - nets ports: - 6379:6379 admin: image: test_admin:v1 container_name: xx-admin restart: always # 使用nets网络 networks: - nets env_file: - ./.env environment: # 引用环境变量,最终是传入容器里交付件的启动命令中 # 例 java -jar -Djava.security.egd=file:/dev/./urandom -Duser.timezone=GMT+08 -Xmx1433m -Dglobal.domain.inter=http://10.90.2.103:8080 ./app.jar - JAVA_OPTS=-Duser.timezone=GMT+08 ${ Xmx} -D${ inter} depends_on: - mysql - redis ports: - ${ pub_port}:8015# 创建自定义网络networks: nets: external: false
[root@test03 test]# cat .env # memoryXmx=-Xmx1433m# open portspub_port=8080# inter inter=global.domain.inter=http://10.90.2.103:8080
注意: env_file和environment中定义的环境变量是传给container用的而不是在docker-compose.yml中的环境变量用的
docker-compose.yml中的环境变量${VARIABLE:-default}引用的是在.env中定义的或者同个shell export出来的可以通过命令查看变量已经被引用了
[root@test03 test]# docker-compose config... environment: JAVA_OPTS: -Duser.timezone=GMT+08 -Xmx1433m -Dglobal.domain.inter=http://10.90.2.103:8080...
转载地址:http://qkksi.baihongyu.com/