zoukankan      html  css  js  c++  java
  • 关于docker的配置文件与环境变量的小发现

    ###### 核心内容:使用官方镜像前,一定要拜读它官方自带的description;

    使用官方镜像前,一定要拜读它官方自带的description;作为众人认可的官方镜像,你未来遇到的大部分问题,很大可能都在这里预置了解决方案。仔细看docker自带官方描述,让你对docker的使用更顺利。

    最近初初接触docker,发现有一点在使用时很不方便,就是配置文件的修改。经过一番波折,终于解决了该问题。

    例如emqx的镜像,plugins/emqx_auth_mysql.conf配置文件中的mysql连接信息等配置,是需要根据部署环境不同而变化的,不能写死在镜像中
    解决方案1:通过挂载外部emqx_auth_mysql.conf替换容器内文件,可以解决问题。但总觉得把整个配置文件暴露在外不方便,且让运维人员维护复杂文件中一个值会增加工作难度
    解决方案2:重新打包emqx镜像,增加shell脚本,通过sed命令替换指定变量;启动镜像时通过变量名传递要修改的配置。
    但shell脚本编写sed替换总是遇到各种麻烦时,且菜鸟写的dockerfile文件缺失也很菜,无端引入很多坑。
    同时,通过变量传递的值有时会莫名其妙替换掉一些关键配置。

    后来仔细研究发现docker自身会留出一些变量设置,方便用户通过变量向配置文件中传递值。这就方便快捷的解决了配置文件关键参数修改的问题,同时也解释了为什么一些核心参数值莫名被修改问题,因为你的变量名正好使用了docker预留的变量名。
    -----------------------------------关键内容来了------------------------------------------
    如何了解docker镜像提供了哪些环境变量,看官方,看官方,看官方,重要的事说三遍,不要百度盲目搜搜搜
    https://hub.docker.com/r/emqx/emqx


    继续往下翻


    如何使用变量修改配置文件,详细描述
    强调一点,当然如果你的配置文件太复杂,使用挂载更方便,仍可以继续使用。解决方案千千万,选择最合适的就好。

  • 相关阅读:
    Eclipse安装反编译插件Jodeclipse或者是JadClipse方法
    Linux服务器下Jenkins+Ant+Tomcat+SVN实现持续集成和部署配置方法
    第十一章 图像
    第十章 Libgdx音频之音乐流
    Axure RP 6.0共享区域(Master)的使用
    Jquery插件Thickbox的使用总结及自定义设置
    [转帖] 我搜集的一些iphone开发视频教程
    PV EV AC BAC EAC ETC等计算公式
    网上超市系列:网上超市销售模式介绍
    oracle中schema指的是什么?
  • 原文地址:https://www.cnblogs.com/sylvia-liu/p/14661288.html
Copyright © 2011-2022 走看看