Composeの定義内でイメージが置かれるディレクトリとDockerfile名を指定すれば、docker-composeコマンドの発行時にDockerfileによるビルドも自動で実施する
$ tree
.
├── app
│ ├── Dockerfile
│ └── src
│ └── server.py
├── docker-compose.yml
└── web
├── Dockerfile
└── html
└── index.html
./web/Dockerfile
From nginx:1.17.5-alpine COPY ./html/ /usr/share/nginx/html/ CMD["nginx", "-g", "daemon off;"]
./docker-compose.yml
version: '3.3' services: app: build: context: ./app dockerfile: Dockerfile ports: - 8081:80 web: build: context: ./web dockerfile: Dockerfile image: c5dev1_nginx container_name: c5dev1_nginx ports: - 8080:80
build: でビルドする
image: がイメージ名
サービス名とイメージのリソースを置くディレクトリ名を統一する方が良い
$ sudo docker-compose build
bindで動作検証して、OKだったら、ビルドする
version: '3.7' services: web: build: context: ./web dockerfile: dockerfile depends_on: - app ports: - 8080:80 environment: APP_SERVER: http://app:80 app: build: context: ./app dockerfile: Dockerfile depends_on: - db environment: REDIS_HOST: db REDIS_PORT: 6379 REDIS_DB: 0 db: image: redis:5.0.6-alpine3.10 volumes: - c5kvs_redis_volume:/data volumes: c5kvs_redis_volume: driver: local