Scott

在docker中如何使用 .env file a year ago

docker
1241个字符
共有893人围观

如何使用.env file

在Docker中,环境变量可用于向Docker容器传递配置。

.env文件是一种简单且灵活的方式来管理这些变量。

那么在Docker中如何使用.env file呢?

1, 首先你需要在项目目录中创建一个.env文件,并填入你的环境变量。格式为:VARIABLE_NAME=value。例如:

DATABASE_URL=yourdatabaseurl
USER=yourusername
PASSWORD=yourpassword

2, 在Dockerfiledocker-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 中,只有 ARGENV 指令定义的环境变量会被嵌入到构建的镜像中,并能影响构建过程本身。

然而,当你运行 Docker 容器时,你可以指定 .env 文件来配置容器内的环境变量。

docker run --env-file .env image_name

这样,你的 .env 文件中的环境变量就为容器内运行的应用程序准备好了,但是并没有嵌入到镜像本身中。

请记住,出于安全考虑, .env 文件不应包含在 Docker 镜像中,尤其是涉及到敏感数据,如密码或 API 密钥。实际开发中建议将.env放入.gitignore