🐱

docker compose で任意のサービスのみを起動する方法

2023/03/27に公開

結論

docker compose up -d [xxxx]

[xxxx]はservices:直下に書いたサービス名
depends_on:で対象サービスが指定したサービスも起動されます。
便利!!

具体的な例

下記のようなdocker compose.ymlの場合、docker-compose up -d back-phpで、dbback-phpが起動されます。
終了はdocker compose downでOK

docker-compose.yml
version: '3'

services:
  front-react:
    container_name: front-react
    build:
      context: ./env/front/react
      dockerfile: Dockerfile
    restart: always
    ports:
      - 3000
    volumes:
      - ./src/front/react:/usr/src/app
    environment:
        # Fixes bug where websocket connection is fixed to default port 3000
        - WDS_SOCKET_PORT=0
    depends_on:
      - db

  back-php:
    container_name: back-php
    build:
      context: ./env/back/php
      dockerfile: Dockerfile
    volumes:
      - ./src/back/php:/opt/
    ports:
      - 9000
    depends_on:
      - db

  db:
    container_name: db
    build:
      context: ./env/db/mysql
      dockerfile: Dockerfile
    restart: always
    volumes:
      - db-mysql-volume:/var/lib/mysql
      - ./env/db/mysql/conf.d:/etc/mysql/conf.d
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: bench
      MYSQL_USER: bench
      MYSQL_PASSWORD: bench
    ports:
      - 3306

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    depends_on:
      - db
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOSTS=db
      - PMA_USER=bench
      - PMA_PASSWORD=bench
    ports:
      - "8080:80"

  proxy-nginx:
    container_name: proxy-nginx
    build:
      context: ./env/proxy/nginx
      dockerfile: Dockerfile
    hostname: proxy-nginx
    restart: always
    ports:
      - 80:80
    volumes:
      - ./src/proxy/nginx:/etc/nginx/conf.d
    depends_on:
      - front-react

volumes:
  db-mysql-volume:

全体ソース

https://github.com/ryotashona/benchmark
テキトーに作った言語比較ベンチマークです。

Discussion