通过docker-compose将.env文件中的环境变量传递给Dockerfile

概述

这是关于在建立Docker环境时的一份备忘录,说明了如何在Dockerfile内调用.env文件中所记录的环境变量。

    1. 使用docker-compose up来启动docker容器

 

    1. 在.env文件中填写环境变量

 

    1. 通过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。然而,经过验证发现,采用这种写法可能会导致错误操作发生。

如果您能详细阅读下面的文章…(・・`)

 

bannerAds