0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

docker-compose.yml → Dockerfile 変数渡し & 複数FROM構成での注意点

Last updated at Posted at 2020-02-20

docker-compose.yml → Dockerfile に変数を渡す方法

↓この記事で使ったネタです:smiley:

1/2 docker-compose.yml側

buildキーの子要素としてargsキーを追加し、
その下に配列として、渡したい変数名と値を書いていきます。

services:
  my-s3access-app:
    build:
      context: ./app
      dockerfile: Dockerfile
      args:
        - GITHUB_ACC=hogehige
        - GITHUB_ACC_PASSWORD=agd82gfo3gfagkaf
     ・
     ・
     ・

2/2 Dockerfile側

ARGコマンドで宣言(キャッチ)すると、それ以降$HOGEで利用可能になります。

FROM golang:1.13
ARG GITHUB_ACC
ARG GITHUB_ACC_PASSWORD
RUN echo -e "machine github.com\nlogin $GITHUB_ACC\npassword $GITHUB_ACC_PASSWORD" > ~/.netrc
RUN go mod download
 ・
 ・
 ・

Dockerfileが複数FROM構成のときの注意点

次のFROMコマンドに処理が移るとき引き継がれないので、ARGしなおさないといけません。

ちなみに複数FROMが必要となるのは
[ソースコードをビルドするイメージ]

[ビルド結果の実行体だけを配備して実行するためのイメージ]
を分けたい時などですね。

FROM golang:1.13 as base

FROM base as builder
ARG GITHUB_ACC
ARG GITHUB_ACC_PASSWORD
RUN echo -e "machine github.com\nlogin $GITHUB_ACC\npassword $GITHUB_ACC_PASSWORD" > ~/.netrc
RUN go mod download
 ・
 ・
 ・
FROM base as scratch
ARG GITHUB_ACC
ARG GITHUB_ACC_PASSWORD
 ・
 ・
 ・
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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?