docker buildに渡した引数を環境変数に渡したかった
大事
ARG YOUR_VARIABLE
これをしないと、変数が定義されない。were not consumed 変数が使用されていない。みたいなエラーが出る。飲み込まれていないだから、引き込まれていないみたいな意味かもしれない。
ビルドコマンド(command lineで--build-arg HOST="mysql"として、DockerfileでARG HOSTとすることで$HOSTをDockerfileで使える。
docker-compose build --no-cache --build-arg HOST="mysql" --build-arg USER="user"
⭕ ARG YOUR_VARIABLEを使用した場合
Step 6/13 : COPY ./app ./ ---> 0dde883bba56 Step 7/13 : EXPOSE 3000 ---> Running in dec3b2975191 Removing intermediate container dec3b2975191 ---> 2f601fad1391 Step 8/13 : ARG HOST ---> Running in 82dc6f6f8fe5 Removing intermediate container 82dc6f6f8fe5 ---> 212c65a76221 Step 9/13 : ARG USER ---> Running in fc6be699b7a3 Removing intermediate container fc6be699b7a3 ---> 1a0f180413e7 Step 10/13 : ARG PASSWORD ---> Running in fd5aa098a50c Removing intermediate container fd5aa098a50c ---> b78aca9014b7 Step 11/13 : ARG DATABASE ---> Running in bb8f7c1fda38 Removing intermediate container bb8f7c1fda38 ---> 129efdaf2bb4 Step 12/13 : ENV HOST=$HOST USER=$USER PASSWORD=$PASSWORD DATABASE=$DATABASE ---> Running in 5c2942c65073 Removing intermediate container 5c2942c65073 ---> aa81ffb1746d Step 13/13 : CMD nodemon app.js localhost 3000 ---> Running in 058ce0fe2166 Removing intermediate container 058ce0fe2166 ---> 7fec6b0f3edf Successfully built 7fec6b0f3edf Successfully tagged node-mysql_app:latest
❌ ARG YOUR_VARIABLEをしない場合
Step 6/9 : COPY ./app ./ ---> cd0217de3e33 Step 7/9 : EXPOSE 3000 ---> Running in 5d2cc5324d10 Removing intermediate container 5d2cc5324d10 ---> 4e76008edf08 Step 8/9 : ENV HOST=$HOST USER=$USER PASSWORD=$PASSWORD DATABASE=$DATABASE ---> Running in 87358714bf36 Removing intermediate container 87358714bf36 ---> 5dea8fdefe4e Step 9/9 : CMD nodemon app.js localhost 3000 ---> Running in 5329e3634c2f Removing intermediate container 5329e3634c2f ---> 63e5f711ba5b ❌❌❌❌❌ bottom line error !!! [Warning] One or more build-args [HOST USER PASSWORD DATABASE] were not consumed Successfully built 63e5f711ba5b Successfully tagged node-mysql_app:latest