当前位置: 首页 > news >正文

如何在 Docker 中设置环境变量 ?

Setting Up Environment Variables in Docker

Docker 是一个开源平台,它简化了在容器中创建、部署和管理应用程序。一个容器是一种可移植的、轻量级的、自包含的运行时环境,包含运行应用程序所需的一切。容器化的关键组成部分之一是管理环境
变量。环境变量是键值对,可用于配置容器运行时的行为。

1. 在 Dockerfile 中定义环境变量

Dockerfile 是一个包含如何构建 Docker 的指令的脚本。在 Dockerfile 中使用ENV 指令定义环境变量。

FROM node:14
ENV NODE_ENV production
ENV API_KEY abcd1234

在本例中,我们设置了 NODE_ENVAPI_KEY,这些变量将在使用此 Dockerfile 构建的镜像创建的任何容器中都可用。

2. 在 docker 运行中设置环境变量

您还可以在启动容器时使用 docker run 命令设置环境变量。这里有一个例子:

docker run -e NODE_ENV=development -e API_KEY=abcd1234 my-image:latest

在本例中,我们为 my-image:latest 创建的容器设置了 NODE_ENVAPI_KEY 环境变量,这些变量只能为这个特定的容器设置。

3. 在 Docker Compose 中使用环境变量

Docker Compose 是一个管理多容器 Docker 应用程序的强大工具,您可以在 docker-compose.yml 中定义环境变量。这里有一个例子:

version: "3"
services:
app:
image: my-image:latest
environment:- NODE_ENV=production
- API_KEY=abcd1234...

在本例中,我们设置 NODE_ENVAPI_KEY 环境变量应用服务,这些变量将在所有为此创建的服务容器中可用。

4. 使用环境变量文件

您可以将环境变量存储在文件中,并在容器创建期间使用它。这对于管理敏感或复杂的信息非常有用
配置。创建一个名为 .env 的文件,包含以下内容:

NODE_ENV=production
API_KEY=abcd1234

要在启动容器时使用该文件,请在 docker run 命令中使用 -env-file 选项:

docker run --env-file .env my-image:latest

对于 Docker Compose,你可以在 docker-compose.yml 中指定环境文件。

version: "3"
services:
app:
image: my-image:latest
env_file: .env
...

5. 应用程序中访问环境变量

要在应用程序中访问环境变量,请使用适当的方法。

在 Node.js 中,可以这样访问 NODE_ENV 变量:

const nodeEnv = process.env.NODE_ENV;

在 Python 中,你可以使用 os 模块:

import os
node_env = os.environ['NODE_ENV']

我的开源项目

酷瓜云课堂-在线教育解决方案

  • course-tencent-cloud(酷瓜云课堂 - gitee仓库)
  • course-tencent-cloud(酷瓜云课堂 - github仓库)
http://www.dtcms.com/a/485971.html

相关文章:

  • 【C++】STL容器--list的使用
  • 【深度学习计算机视觉】12:风格迁移
  • 网站到期可以续费织梦安装网站后图片
  • 公司购物网站备案wordpress恢复主题
  • C++基于opencv实现的暗通道的先验图像去雾
  • 大型PCB标定方案:基于对角Mark点的分区域识别与校准
  • 做羞羞事视频网站网站策划哪里找
  • 【Android RxJava】Observal与Subject深入理解
  • 基于Rokid CXR-S SDK的智能AR翻译助手技术拆解与实现指南
  • 【uniapp】微信小程序修改按钮样式
  • Lombok使用指南(中)
  • Threejs入门学习笔记
  • 机器学习模型评估指标AUC详解:从理论到实践
  • 凡科建站小程序网站设计的一般流程
  • Linux C/C++ 学习日记(24)UDP协议的介绍:广播、多播的实现
  • OpenHarmony内核基础:LiteOS-M内核与POSIX/CMSIS接口
  • C语言实现Modbus TCP/IP协议客户端-服务器
  • ORACLE 19C ADG环境 如何快速删除1.8TB的分区表?有哪些注意事项?
  • 重庆黔江做防溺水的网站少儿编程十大培训机构
  • 浅谈中兴电子商务网站建设html考试界面设计
  • 工业三防平板背后的条码与RFID采集技术
  • pytorch框架GPU适配npu
  • 【散列函数】哈希函数简介
  • 学英语音标作用,能听出声音拼音组成,记忆效率提高
  • 学习日记day
  • Python爬虫数据可视化:深度分析贝壳成交价格趋势与分布
  • C++中的父继子承(2)多继承菱形继承问题,多继承指针偏移,继承组合分析+高质量习题扫尾继承多态
  • 做公司网站别人能看到吗6网站源码传到服务器上后怎么做
  • php多语言网站开发网站界面设计图片
  • 树形结构渲染 + 选择(Vue3 + ElementPlus)