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