version: '2' networks: lb_web: external: true back: driver: bridge services: db: restart: always image: postgres:9.6-alpine networks: - back volumes: - ./data/postgres:/var/lib/postgresql/data redis: restart: always image: redis:alpine networks: - back web: image: nginx:alpine volumes: - ./nginx.conf:/etc/nginx/nginx.conf volumes_from: - app depends_on: - app - streaming networks: - back - lb_web environment: - VIRTUAL_HOST app: restart: always image: gargron/mastodon:v2.3.3 env_file: .env.production command: bundle exec rails s -p 3000 -b '0.0.0.0' depends_on: - db - redis volumes: - ./public/assets:/mastodon/public/assets - ./public/packs:/mastodon/public/packs - ./public/system:/mastodon/public/system - ./tmp:/mastodon/tmp networks: - back streaming: restart: always image: gargron/mastodon:v2.3.3 env_file: .env.production command: npm run start depends_on: - db - redis networks: - back sidekiq: restart: always image: gargron/mastodon:v2.3.3 env_file: .env.production command: bundle exec sidekiq -q default -q mailers -q pull -q push depends_on: - db - redis volumes: - ./public/system:/mastodon/public/system - ./public/packs:/mastodon/public/packs - ./tmp:/mastodon/tmp networks: - back