かべぎわブログ

技術的なことについてかけたらいいな…

Dockerfileのなかで変数を利用する

概要

Dockerfileを書いていて、あーここあとで変更入りそうだしかんたんに変えられるようにしたいなー何回も書くのめんどくさいなー変数つかいたいなーと思ったので調べてみた。

ARGをつかえばいい

Dockerfile内でARGというところで変数を定義してあげるといいらしい。
ためしに以下のようなDockerfileを用意してdocker buildしてみる。

FROM centos

ARG hennsuu="wawawa"
RUN echo ${hennsuu} > /root/result.txt

docker buildして

$ sudo docker build -t tes ./docker_file_dir/

Sending build context to Docker daemon  3.072kB
Step 1/3 : FROM centos
 ---> 49f7960eb7e4
Step 2/3 : ARG hennsuu="wawawa"
 ---> Running in 53a05c0e7800
Removing intermediate container 53a05c0e7800
 ---> 5426a06924da
Step 3/3 : RUN echo ${hennsuu} > /root/result.txt
 ---> Running in 58118ee29383
Removing intermediate container 58118ee29383
 ---> 622d0f8f8bb0
Successfully built 622d0f8f8bb0
Successfully tagged tes:latest

docker runでなかにはいって

$ sudo docker run -it 622d0f8f8bb0 /bin/bash

確認してみると変数が無事に認識されていた。

# cat /root/result.txt 
wawawa

ちなみに

このARGに定義した変数はdocker buildのタイミングでしか使われない。

# echo ${hennsuu}
  

↑echoしてもなにもない意

おわりに

べんり

Dockerによるアプリケーション開発環境構築ガイド

Dockerによるアプリケーション開発環境構築ガイド