通过docker-compose将.env文件中的环境变量传递给Dockerfile
概述
这是关于在建立Docker环境时的一份备忘录,说明了如何在Dockerfile内调用.env文件中所记录的环境变量。
-
- 使用docker-compose up来启动docker容器
-
- 在.env文件中填写环境变量
-
- 通过docker-compose.yml调用Dockerfile
- 在第3步的Dockerfile中,想要使用第2步中.env文件中所记录的环境变量。
为了减轻大脑负担,我尽量将文章写得更简短。
文件的摆放情况
我把文件配置设置成这样的情况
application_root/
├───docker/
│ └───app/
│ └──Dockerfile
├───.env
└───docker-compose.yml
源代码
.env文件
首先,在Dockerfile中添加要使用的环境变量。
VERSION=3.8
docker-compose.yml的中文翻译如下
需要以下一种选择:docker-compose.yml
将在.env文件中指定的环境变量传递给args。
这将使该环境变量传递给Dockerfile。
version: "3.0"
services:
app:
build:
context: ./docker/app
args:
VER: ${VERSION} # from .env file
# NOTE: env_file is not necessary if you use only .env as env_file.
# NOTE: もしenv_fileとして.envしか使わないのであれば、env_fileの指定は不要。
# env_file:
# - .env
Dockerfile => Docker文件
通过将之前在args中指定的key现在指定到ARG中,可以使得环境变量可以在其他地方调用。
ARG VER
FROM "python:${VER}" # -> FROM "python:3.8"
相关文章
我决定将下面的文章进行报道,因为虽然在之前的文章中已经写明了方法,但是一直没有太多反响(尤其是用英语阅读需要时间理解)。
是我的搜索方法不太好,还是Google没有把它排在前面呢?虽然不知道原因,但希望能更快地找到搜索结果(´;ω;`)ブワッ
在第三篇文章中,没有提及Dockerfile。
完整
在上述的Dockerfile示例中,已经在FROM之前指定了ARG。然而,经过验证发现,采用这种写法可能会导致错误操作发生。
如果您能详细阅读下面的文章…(・・`)