LoginSignup
0
0

More than 1 year has passed since last update.

How to use a dot env file when building the container with docker-compose

Last updated at Posted at 2022-12-09

docker-composeでコンテナを構築する際に.envファイルを使用する方法

docker-compose buildgit config --global user.emailとかnameとかを指定したいの。でも個人情報をDockerfileに書くのは死んでも嫌!

そうだ!.envを使えばなんとかなるんでは……?

で、こうなりました。

docker-compose.yml
version: '3'

services:
  web:
    build:
      context: .

      args:
        - GIT_USER_EMAIL=$GIT_USER_EMAIL # ココ
        - GIT_USER_NAME=$GIT_USER_NAME   # ココ

    volumes:
      - ./src:/app

    ports:
      - "80:8080"
FROM bash

WORKDIR /app

ARG GIT_USER_EMAIL
ARG GIT_USER_NAME

RUN \
  apk add git &&\
  git config --global user.email "${GIT_USER_EMAIL}" && \
  git config --global user.name "${GIT_USER_NAME}"
.env
GIT_USER_EMAIL="foobar@example.com"
GIT_USER_NAME="Foo Bar"

Dockerfile内でARGとして変数を宣言しなければならないのが盲点でした。

なお、docker-compose.ymlで以下のように変数を波カッコで囲むと動作しないようです。

- GIT_USER_EMAIL=${GIT_USER_EMAIL}
- GIT_USER_NAME=${GIT_USER_NAME}
参考にしたページ
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0