博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker-compose 环境变量问题
阅读量:4100 次
发布时间:2019-05-25

本文共 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
  • 容器间应用交互使用container_name定义的名称
    Xmx,inter,pub_port是我用到的环境变量,通过查阅文档,变量可以定义到一个文件中,如定义到.env中,如下:
[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...
  • 建议env_file 引入的文件名为.env,最好不要使用其他名称
    1. 优点: .env文件变更会实时更新docker-compose中的引用,使用其他名称不会实时更新docker-compose中的引用,使用其他名称在docker-compose中引用有时会WARNING: The DB_DIR variable is not set. Defaulting to a blank string.
    2. 缺点: 自定义名称不方便

转载地址:http://qkksi.baihongyu.com/

你可能感兴趣的文章
servlet中的cookie和session
查看>>
过滤器及JSP九大隐式对象
查看>>
软件(项目)的分层
查看>>
菜单树
查看>>
MySQL-分布式架构-MyCAT
查看>>
设计模式六大原则(6):开闭原则
查看>>
阿里面试总结--JAVA
查看>>
Servlet的生命周期
查看>>
JAVA八大经典书籍,你看过几本?
查看>>
《读书笔记》—–书单推荐
查看>>
【设计模式】—-(2)工厂方法模式(创建型)
查看>>
有return的情况下try catch finally的执行顺序(最有说服力的总结)
查看>>
String s1 = new String("abc"); String s2 = ("abc");
查看>>
JAVA数据类型
查看>>
Xshell 4 入门
查看>>
SoapUI-入门
查看>>
Oracle -常用命令
查看>>
JAVA技术简称
查看>>
ORACLE模糊查询优化浅谈
查看>>
2016——个人年度总结
查看>>