通过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。然而,经过验证发现,采用这种写法可能会导致错误操作发生。
如果您能详细阅读下面的文章…(・・`)