📅  最后修改于: 2023-12-03 15:22:06.185000             🧑  作者: Mango
在使用Docker容器的时候,我们经常需要传递一些环境变量到容器内部,以便于程序能够正确地运行。本文将介绍如何在Docker容器中传递环境变量。
使用Dockerfile可以在构建镜像的时候传递环境变量。在Dockerfile中可以通过 ENV
命令来设置环境变量。例如:
FROM node:14
ENV NODE_ENV=production
使用 docker build
命令构建镜像后,所有基于该镜像启动的容器都会自动设置 NODE_ENV
环境变量为 production
。在应用程序中可以通过 process.env.NODE_ENV
访问该环境变量。
使用 docker run
命令时可以使用 --env
或 -e
标志来传递环境变量。例如:
docker run --env NODE_ENV=production myapp
这样在容器内部就会设置 NODE_ENV
环境变量为 production
。
在docker-compose文件中可以使用 environment
关键字来设置容器的环境变量。例如:
version: '3'
services:
myapp:
image: node:14
environment:
NODE_ENV: production
在一些情况下,我们需要在应用程序中使用机密信息,例如数据库密码等。为了保证机密信息不泄露,我们需要使用一种安全的方式来传递这些信息。
Docker提供了 --env-file
标志来从文件中读取环境变量。例如:
docker run --env-file ./env.list myapp
env.list
文件中包含了环境变量的键值对,例如:
DB_PASSWORD=mysecretpassword
在容器内部可以通过 process.env.DB_PASSWORD
访问该环境变量。
在Docker容器中传递环境变量有多种方式,可以根据实际情况选择最合适的方法。在传递机密信息时,需要采用安全的方式来保证信息不泄露。