Docker 関連のファイルは他の主要なファイルに紛れ込まないように別のフォルダに隔離したい。
でもそうすると docker-compose build
した時にビルドコンテキストの外のファイルを参照することになってしまい、イメージがビルドできない。
この状況に対応するために、docker-compose
にはビルドコンテキストと Dockerfile を個別に指定する機能がある。
下のように build:
の下に dockerfile
と context
を指定するだけ。
Dockerfile のパスはビルドコンテキストからの相対パスになることに注意する。
便利!
version: '3'
services:
my-service:
build:
dockerfile: ./my/service/Dockerfile
context: ../..
ports:
- "8080:8080"
environment:
PORT: "8080"