docker~环境变量到底怎么用

摘要:
docker已经用了两年多了,从开始的简单应用到现在的自动化部署,已经越来越感觉到它的威力,今天把Hitchhiker部署完成后,看到了它与.netcore项目有个类似的地方,就是对于多环境部署的时候都用到了环境变量,Hitchhiker的docker-compose.yml里有对环境地址的设置;在.netcore里同样也是通过环境变量的设置来实现各个配置文件的加载的,这点两者是同时的,这也是一个趋势!

docker已经用了两年多了,从开始的简单应用到现在的自动化部署,已经越来越感觉到它的威力,今天把Hitchhiker部署完成后,看到了它与.net core项目有个类似的地方,就是对于多环境部署的时候都用到了环境变量,Hitchhiker的docker-compose.yml里有对环境地址的设置(当前这个开源项目还有一些BUG,需要挂载一下/utils/index.js,去修改一下自己的端口,这个项目把它在了appconfig.json里了,默认8080,大叔认识不如直接写到环境变量里,根据具体变量去实现端口的监听不是更好吗);在.net core里同样也是通过环境变量的设置来实现各个配置文件的加载的,这点两者是同时的,这也是一个趋势!

docker-compose.yml里的环境变量

services:
  hitchhiker:
    image: lind/ddd
    container_name: lind/ddd:v1.0
    environment:
      - DB_HOST=lind-mysql
      - APP_HOST=http://127.0.0.1
      - APP_Port=8080

上面代码里,声明了三个环境变量,用户在部署时,根据具体环境去填写信息,如本地测试用的是127.0.0.1和8080,数据库服务器名是lind-mysql,而在stage和prod环境可能有其它的配置,根据具体的情况去配置它,这就是部署文件yml里的环境变量!

程序中使用环境变量

这些环境变量在部署时设计后,程序的运行时里,会有具体的体现,你设置什么,它就获取什么,在不同的语言里,使用环境变量的方法也是不同的,看下面的例子:

1 sh脚本使用它

echo $DB_HOST

2 .netcore里比较特殊

只配置环境变量名称,然后每个环境变量对应一种配置文件,代码里只访问配置文件即可(根据系统当前的环境变量去访问对应的文件)

environment:
      - ASPNETCORE_ENVIRONMENT=Development
       publicStartup(IConfiguration configuration, IHostingEnvironment env)
        {
            ConfigFileHelper.Set(env: env);
            Configuration =configuration;
        }

.netcore里也环境变量简单化了,只需要设置三个默认的,当然也可以自己扩展,三个默认的分别是Development,Staging和Producting.

3 nodejs里使用它

console.log(process.env.APP_HOST)

通过讲,让我们认识到了环境变量的魅力!

多环境部署,有它才够灵活!

免责声明:文章转载自《docker~环境变量到底怎么用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用docker容器运行MySQL数据库并持久化数据文件《java并发编程实战》读书笔记10--显示锁Lock,轮询、定时、读写锁下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android基础之用Eclipse搭建Android开发环境和创建第一个Android项目(Windows平台)

原地址:http://www.cnblogs.com/allenzheng/archive/2012/11/10/2762379.html 一、搭建Android开发环境 准备工作:下载Eclipse、JDK、Android SDK、ADT插件 下载地址:Eclipse:http://www.eclipse.org/downloads/          ...

jenkins下JDK、Maven、Gradle、SVN、Tomcat、SDK安装配置

1.JDK安装与配置: 1)下载jdk,根据安装步骤一直点击下一步进行安装,安装完后配置环境变量 计算机→属性→高级系统设置→高级→环境变量 2)系统变量→新建 JAVA_HOME 变量 ,变量值填写jdk的安装目录 3)系统变量→寻找 Path 变量→编辑, 在变量值最后输入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; (...

docker中 WSL 配置 修改

Resources The Resources tab allows you to configure CPU, memory, disk, proxies, network, and other resources. Different settings are available for configuration depending on whet...

docker中安装anaconda+ jupyter(远程访问)+tensorflow

一、docker安装anaconda 1、到anaconda清华镜像网站下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 注意版本:Anaconda2表示python2,Anaconda3表示python3。查看:https://blog.csdn.net/yuejisuo1948/arti...

【android】sdk安装及环境变量配置、android studio的安装及新建项目

(前提,安装配置好jdk) 首先下载一个sdk(http://tools.android-studio.org/index.php/sdk) 我先下的是.exe版本,因为后面括号Recommend,推荐。下完了点击安装 点击next——报错!! 意思是找不到jdk,(然而我有,JAVA_HOME也配置的好好的) 百度了不知道几次找到的方法 方法一:点...

Docker添加域名解析

原文链接地址:  https://www.cnblogs.com/amyzhu/p/10957667.html 方法一: 直接进入容器中修改/etc/hosts 缺点:重启容器后,增加的内容会丢失 方法二: 制作镜像的时候,直接修改。 限制: 需要是root用户,需要在容器中安装sudo 增大了镜像大小 方法三: 使用docker run运行一个新的容...