サービスにプロファイルを設定する

docker-compose.ymlファイルでサービスを定義するときにprofilesに任意の名称を設定できる。

プロファイルを指定せずに起動する

サービス起動時にプロファイルを指定しなかった場合はプロファイルが指定されていないサービスのみが起動する。

$ <<YAML > docker-compose.yml
version: '3.9'
services:
  web:
    image: php:fpm-alpine
    depends_on:
      - database
    profiles:
      - web
  admin:
    image: phpmyadmin:fpm-alpine
    depends_on:
      - database
    profiles:
      - admin
  database:
    image: mysql:latest
    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: true
YAML
$ docker compose up
# => start `database`

プロファイルを指定して起動する

プロファイルを指定した場合は指定されたプロファイルとプロファイルが指定されていないサービスが起動する。

$ docker compose --profile web up
# => start `web`, `database`
$ COMPOSE_PROFILES=web docker compose up
# => start `web`, `database`

プロファイルを複数指定して起動する

プロファイルは複数指定することができる。

$ docker compose --profile web --profile admin up
# => start `web`, `admin`, `database`
$ COMPOSE_PROFILES=web,admin docker compose up
# => start `web`, `admin, `database`