Dockerfile を複数扱う

構成

app/
  └ public/
     └ index.php
docker-compose.yaml
nginx/
  ├ default.conf
  └ Dockerfile
php/
  └ Dockerfile

以下、関係あるファイルのみ抜粋。

サンプルコード

docker-compose.yaml

build: 内で context: の他に dockerfile: を指定する。


version: "3"

services:
    app:
        build:
            context: .
            dockerfile: ./nginx/Dockerfile
        depends_on:
            - php
        ports:
            - 8080:80
        # image: nginx:1
        volumes:
            - ./app:/var/www/html
            - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
        working_dir: /var/www/html

    php:
        build:
            context: .
            dockerfile: ./php/Dockerfile
        # image: php:fpm
        volumes:
            - ./app:/var/www/html
        working_dir: /var/www/html

nginx/Dockerfile

FROM nginx:1

php/Dockerfile

FROM php:fpm