在docker中如何使用 .env file a year ago
如何使用.env
file
在Docker中,环境变量可用于向Docker容器传递配置。
.env
文件是一种简单且灵活的方式来管理这些变量。
那么在Docker中如何使用.env
file呢?
1, 首先你需要在项目目录中创建一个.env
文件,并填入你的环境变量。格式为:VARIABLE_NAME=value
。例如:
DATABASE_URL=yourdatabaseurl
USER=yourusername
PASSWORD=yourpassword
2, 在Dockerfile
或docker-compose.yml
中,指定来自.env
文件的变量。
- 2.1 如果你使用的是Dockerfile,使用
ENV
指令来定义环境变量:
ENV VAR_NAME=$VAR_NAME
- 2.2 如果你使用的是
docker-compose.yml
,只需简单指定变量:
services:
your_service:
image: your_image
environment:
- DATABASE_URL
- USER
- PASSWORD
3, 运行
- 3.1 如果你使用
docker-compose
运行Docker,它会自动从项目目录中读取.env文件。只需运行:
sudo docker-compose up -d
- 3.2 如果你没有使用Docker Compose,而是直接使用Docker,运行你的容器时可以使用
--env-file
选项:
sudo docker run --env-file .env image_name
当build image时,需要指定.env
file 吗?
Docker在build image时不需要指定 .env
文件。
在 .env
文件中设置的环境变量通常在运行时使用。
在 Dockerfile 中,只有 ARG
和 ENV
指令定义的环境变量会被嵌入到构建的镜像中,并能影响构建过程本身。
然而,当你运行 Docker 容器时,你可以指定 .env
文件来配置容器内的环境变量。
docker run --env-file .env image_name
这样,你的 .env
文件中的环境变量就为容器内运行的应用程序准备好了,但是并没有嵌入到镜像本身中。
请记住,出于安全考虑,
.env
文件不应包含在 Docker 镜像中,尤其是涉及到敏感数据,如密码或 API 密钥。实际开发中建议将.env
放入.gitignore
中