docker~环境变量到底怎么用

简介:

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
       public Startup(IConfiguration configuration, IHostingEnvironment env)
        {
            ConfigFileHelper.Set(env: env);
            Configuration = configuration;
        }

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

3 nodejs里使用它

console.log(process.env.APP_HOST)

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

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

本文转自博客园张占岭(仓储大叔)的博客,原文链接:docker~环境变量到底怎么用,如需转载请自行联系原博主。

目录
相关文章
|
JSON 网络协议 开发工具
对已有的docker容器添加新的目录映射, 端口映射,环境变量,dns等
docker容器已经建立并运行, 需要在已有容器上添加新的目录映射,端口映射,环境变量等
4067 0
|
11月前
|
前端开发 JavaScript 应用服务中间件
在Docker部署的前端应用中使用动态环境变量
以上步骤展示了如何在 Docker 配置过程中处理并注入环墨遁形成可执行操作流程,并确保最终用户能够无缝地与之交互而无须关心背后复杂性。
609 13
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
626 4
|
JSON Shell 数据格式
在Docker中,如何查看镜像支持的环境变量?
在Docker中,如何查看镜像支持的环境变量?
|
Java 数据库连接 Docker
【Docker 专栏】Docker 容器内环境变量的管理与使用
【5月更文挑战第9天】本文介绍了Docker容器中环境变量的管理与使用,环境变量用于传递配置信息和设置应用运行环境。设置方法包括在Dockerfile中使用`ENV`指令或在启动容器时通过`-e`参数设定。应用可直接访问环境变量或在脚本中使用。环境变量作用包括传递配置、设置运行环境和动态调整应用行为。使用时注意变量名称和值的合法性、保密性和覆盖问题。理解并熟练运用环境变量能提升Docker技术的使用效率和软件部署质量。
1447 0
【Docker 专栏】Docker 容器内环境变量的管理与使用
|
Docker 容器
如何在Docker中设置环境变量?
如何在Docker中设置环境变量?
3210 0
|
Docker 容器
Docker环境变量设置
Docker环境变量设置
266 0
|
Oracle Java 关系型数据库
docker 安装 jdk,配置环境变量
本文是博主学习Docker的记录,希望对大家有所帮助。
3120 0
docker 安装 jdk,配置环境变量
|
Shell Linux Docker
docker:环境变量配置不生效/ect/profile
docker:环境变量配置不生效/ect/profile
1652 0
|
Linux Docker 容器
Docker - 解决重新进入容器后,环境变量失效的问题
Docker - 解决重新进入容器后,环境变量失效的问题
1245 0

热门文章

最新文章