JavaScriptを有効にしてください

docker-compose で .env ファイルを使って環境ごとに設定を変える

 ·  ☕ 1 分で読めます

docker-compose で .env ファイルを使って環境ごとに設定を変える

docker-compose 構築時に環境ごとに設定を変えたいことがあります。
そういった時に .env ファイルに設定値を書き込んで読むようにする方法のメモ。

.envファイルを作成

.env ファイルを docker-compose.yml と同じ階層に用意すると docker-compose 内で変数のように展開できます。

1
2
3
4
5
6
7
8
# バージョン指定
PYTHON_VERSION=2

# HOST側のコードパス
APP_CODE_PATH_HOST=../

# コンテナ側のコードパス
APP_CODE_PATH_CONTAINER=/var/www

docker-compose.yml

${設定名}.env に設定した値を展開することが出来ます。
argsDockerfile に使用したい設定値を使用します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
version: '3.8'
volumes:
  db-store:
services:
  python:
    container_name: python
    build:
      context: .
      dockerfile: ./python/Dockerfile
      args:
        - PYTHON_VERSION=${PYTHON_VERSION}
    volumes:
      - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
    working_dir: ${APP_CODE_PATH_CONTAINER}
    tty: true

Dockerfile

docker-compose.ymlargs に入れた PYTHON_VERSION を使用します。

1
2
3
4
5
6
# 値がない場合用にデフォルト値を設定
ARG PYTHON_VERSION=3

# 指定されたバージョンのイメージを取得
FROM python:${PYTHON_VERSION}
RUN apt-get update
共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer