Docker Certified Associate(DCA)認證考試學習- Docker Compose Yaml Environment Docker Certified Associate(DCA)認證相關資源、Docker Compose Yaml Environment

Published on Saturday, March 11, 2023

Docker Compose Yaml Environment

今天要來學習如何在 Docker Compose 設定環境變數讓我們可以在 container 內部使用,首先先看一下文檔
首先先建立環境與輸入以下內容

mkdir mycompose && cd $_
vi docker-compose.yml 

這邊使用方法很簡單只要在 service 底下直接新增一個 environment 設定值就可以了

services:
  nginx:
    image: nginx
    tty: true
    stdin_open: true
    ports:
      - 80:80
    environment:
      - env=development

設定完成後直接使用命令 docker compose up -d 運行此設定檔
之後進入容器內輸入命令 env 查看目前容器內部的環境變數有哪些 這時就可看到我們剛剛新增的環境變數 env=development 出現在第一位

[node1] (local) root@192.168.0.8 ~/mycompose
$ docker exec -it 6b bash

root@6be0e8c1ef9e:/# env
env=development
HOSTNAME=6be0e8c1ef9e
PWD=/
PKG_RELEASE=1~bullseye
HOME=/root
NJS_VERSION=0.7.9
TERM=xterm
SHLVL=1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NGINX_VERSION=1.23.3
_=/usr/bin/env

關於環境變數還有另一種設定方法就是 env_file 設定值搭被使用 .env 檔案

services:
  nginx:
    image: nginx
    tty: true
    stdin_open: true
    ports:
      - 80:80
    env_file:
      - ./.env
vi .env

.env 檔案的內容需要注意,需要是變數開頭 + = + 變數的值

env=development
file=envfile

完成後使用命令 docker compose up -d 運行此設定檔
之後進入容器內輸入命令 env 查看目前容器內部的環境變數有哪些 也可看到我們剛剛設定的兩個環境變數也有成功出現

[node1] (local) root@192.168.0.8 ~/mycompose
$ docker exec -it 6a4 bash

root@6a4a3eb2c601:/# env
file=envfile
env=development
HOSTNAME=6a4a3eb2c601
PWD=/
PKG_RELEASE=1~bullseye
HOME=/root
NJS_VERSION=0.7.9
TERM=xterm
SHLVL=1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NGINX_VERSION=1.23.3
_=/usr/bin/env

Summary

今天學習了環境變數的設定方法,使用 .env 檔案的話 docker-compose.yml 會比較乾淨,通常一個功能很多的 container 需要設定許多環境變數
所以全部寫在 docker-compose.yml 會顯得很混亂,但是可以保持只有一個檔案存在,可以按照自己的需求來選擇該使用那一種方式