在docker-compose.yml文件中配置容器的环境变量方式

 更新时间:2024年11月27日 11:18:07   作者:骑上单车去旅行  
本文介绍了在docker-compose.yml文件中设置和使用环境变量的方法,包括直接设置环境变量、从文件读取环境变量以及使用多个环境文件进行不同部署环境的配置

1.直接设置环境变量

version: "3"
services:
  web:
    image: my - web - app:v1.0
    environment:
      - DEBUG = false
      - API_KEY = "abcdef123456"

语法格式

在服务定义部分,可以使用environment关键字来设置环境变量。

例如:

解释说明

  • 这里定义了一个名为web的服务,它使用my - web - app:v1.0镜像。
  • environment下的每一行都定义了一个环境变量。
  • DEBUG = false设置了一个名为DEBUG的布尔型环境变量为falseAPI_KEY = "abcdef123456"设置了一个名为API_KEY的字符串环境变量,其值为abcdef123456
  • 这些环境变量在容器启动后,会被容器内的应用程序读取并使用,应用程序可以根据这些变量的值来调整自己的行为,比如在DEBUG = false时关闭调试模式。

2.从文件中读取环境变量(.env文件)

DB_USER = myuser
DB_PASSWORD = mypassword
DB_HOST = database - service
DB_PORT = 3306
DB_NAME = mydatabase

创建.env文件

docker - compose.yml文件所在的目录下创建一个.env文件。

例如:

docker - compose.yml文件中引用

version: "3"
services:
  web:
    image: my - web - app:v1.0
    environment:
      - DB_USER = ${DB_USER}
      - DB_PASSWORD = ${DB_PASSWORD}
      - DB_HOST = ${DB_HOST}
      - DB_PORT = ${DB_PORT}
      - DB_NAME = ${DB_NAME}

解释说明

  • .env文件用于存储环境变量的键值对,这种方式使得环境变量的管理更加方便,特别是在有多个环境变量或者环境变量的值可能会经常变化的情况下。
  • docker - compose.yml文件中,通过${变量名}的形式来引用.env文件中的环境变量。
  • 例如,DB_USER = ${DB_USER}会将容器内的DB_USER环境变量的值设置为.env文件中DB_USER的值(在这里是myuser)。
  • 这样,当需要修改环境变量的值时,只需要修改.env文件,而不需要在docker - compose.yml文件中逐个修改。

3.使用多个环境文件(用于不同的部署环境)

# development.env
DEBUG = true
APP_PORT = 3000
# production.env
DEBUG = false
APP_PORT = 80

创建多个环境文件

例如,创建development.env用于开发环境,production.env用于生产环境。

docker - compose.yml文件中指定环境文件(使用--env - file选项)

docker - compose --env - file development.env up -d
docker - compose --env - file production.env up -d

这种方式在通过命令行启动docker - compose时使用。

例如,在开发环境下启动:

或者在生产环境下启动:

解释说明

  • 通过指定不同的环境文件,可以轻松地在不同的部署环境(如开发、测试、生产)之间切换。
  • 每个环境文件可以包含特定于该环境的环境变量设置,使得应用程序能够根据所处的环境来调整自己的行为。
  • 例如,在开发环境中可以将DEBUG设置为true以方便调试,而在生产环境中将其设置为false以提高性能和安全性。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Docker安装MySQL镜像实战分享

    Docker安装MySQL镜像实战分享

    这篇文章主要给大家分享了Docker安装MySQL镜像实战,让大家更深入的了解容器的使用场景,文章通过图文结合的方式给大家介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • 关于构建aarch64环境Mysql8.0的Docker镜像问题

    关于构建aarch64环境Mysql8.0的Docker镜像问题

    这篇文章主要介绍了构建aarch64环境Mysql8.0的Docker镜像,需要的朋友可以参考下
    2022-04-04
  • 谈谈我对docker的理解

    谈谈我对docker的理解

    作为一种新兴的虚拟化方式,Docker跟传统的虚拟化方式相比具有众多的优势。这篇文章给大家介绍了docker的优势及docker的三个基本概念,感兴趣的朋友一起看看吧
    2016-10-10
  • Docker 提交仓库的方法

    Docker 提交仓库的方法

    这篇文章主要介绍了Docker 提交仓库的方法,把我们东西上传DockerHub,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • docker部署单机版doris的实现步骤(无坑)

    docker部署单机版doris的实现步骤(无坑)

    本文主要介绍了docker部署单机版doris的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-08-08
  • CentOS7中配置Docker的yum源并安装使用详解

    CentOS7中配置Docker的yum源并安装使用详解

    这篇文章主要介绍了CentOS7中配置Docker的yum源并安装使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 从零开始构建docker基础镜像的方法

    从零开始构建docker基础镜像的方法

    这篇文章主要介绍了从零开始构建docker基础镜像的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • docker打包Python环境的过程详解

    docker打包Python环境的过程详解

    这篇文章主要介绍了docker打包Python环境过程,准备工作需要大家复制python程序启动程序,具体操作流程跟随小编一起看看吧
    2021-08-08
  • Docker中查看kkFileView版本的五种实用方法全解析

    Docker中查看kkFileView版本的五种实用方法全解析

    本文给大家介绍在Docker环境中查看kkFileView服务版本的五种方法,包括进入容器查看、解析日志文件、检查容器内文件、利用dockerinspect命令和查询API,每种方法的步骤和适用场景都有详细说明,帮助用户快速准确地获取版本信息,感兴趣的朋友跟随小编一起看看吧
    2026-04-04
  • docker可视化管理工具portainer忘记密码重置教程的实现

    docker可视化管理工具portainer忘记密码重置教程的实现

    本文主要介绍了docker可视化管理工具portainer忘记密码重置教程的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08

最新评论