🖥

docker-compose build が重い、イメージサイズが大きすぎるのって .dockerignore で解決できる? #docke

2019/11/13に公開

.dockeriignore

噂に聞いた話レベルだが、本当に効果があった。

.docker-compse.yml と同じディレクトリに .dockerignore を設置して、不必要なディレクトリを無視してやる。

/log
/vender

まだ概要把握中。

別の方法?

logディレクトリなどをマウントしない方法もあるみたいだけど、これだとマウントされなくなってしまうしな。

docker-composeを爆速にする - Qiita

Rails開発等でdocker-composeを使うと非常に遅い場合があります(特にDocker For Mac)。
docker-compose時に余計なファイルをマウントしてしまってるのが原因らしいので、.git, log, tmp, vendor >などのホストからマウントする必要のないディレクトリを別のvolumeでマウントを上書きしてしまえば解消されます。

version: '3'
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile.dev
    environment:
      RAILS_POSTGRES_HOST: db
    ports:
      - "3000:3000"
    volumes:
      - .:/app:cached
      - bundle:/usr/local/bundle:cached
      # 1. exclude volumes
      - /app/vendor
      - /app/tmp
      - /app/log
      - /app/.git
...

関連

Dockerfile リファレンス — Docker-docs-ja 17.06.Beta ドキュメント

docker-compose build too slow (not response) · Issue #6409 · docker/compose

.dockerignore アンチパターン - Qiita

Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/2713

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2019-11-13

Discussion