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-compose build時に「no Space Left on Device」が発生

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

next exportで書き出した静的サイトのconsoleに _next/data/xxx/.json 404エラーが出力される

Next.jsバージョンをv10.0.4にアップデートした

docker-compose.yamlでCPUとメモリ制限をかける

deployキーを設定することで制限をかけることができる

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

/etc/docker/daemon.jsonに追記