LoginSignup
236
182

More than 5 years have passed since last update.

docker-composeを爆速にする

Last updated at Posted at 2018-05-13

※ 色々修正しました

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

具体的な docker-compose.yml は以下のようになります(Railsの例)

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

    links:
      - db
  db:
    image: postgres:9.6
    environment:
      POSTGRES_USER: root
      POSTGRES_PASSWORD: password
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data:cached
volumes:
  bundle:
    driver: local
  pgdata:
    driver: local

1. exclude volumes で指定しているようにAnonymous VolumeでVolumeを上書きすると、該当Volumeは永続化されなくなります。

これでDocker For Macマウント遅い問題は8割方解消できました。
もっと良いやり方などあればコメント等で教えて頂けると幸いです。

236
182
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
236
182