Extension fieldsを使ってdocker-composeのコンテナ設定を共通化する

公開日時

docker-composeのversion 3.4以降のフォーマットからExtension fieldsという機能が使えるようになったとのこと。

これを使うとコンテナ設定の共通化ができる。

Railsで非同期処理をする際にsidekiqのコンテナを用意したかったので、Extension fieldsを使ってRailsコンテナ設定を共通化してcommandだけそれぞれで変えるようにした。

version: "3.7"

x-app: &app
  build:
    context: .
    dockerfile: ./docker/ruby/Dockerfile

services:
  app:
    <<: *app
    command: ["bundle", "exec", "rails", "s", "-b", "0.0.0.0"]
  sidekiq:
    <<: *app
    command: ["bundle", "exec", "sidekiq", "-C", "config/sidekiq.yml"]

参考


Related #docker

Dockerのデータ保存場所を変更する

/etc/docker/daemon.jsonに追記

docker-composeで最新のログを確認する場合

tailオプションも合わせて指定しよう

docker-compose build時に「no Space Left on Device」が発生

1年前にも同じエラーにハマってた

Windows10 HomeにDockerを入れる

Windows 10 May 2020 UpdateでWSL2が導入されたおかげ