diff --git a/docker-compose.yml b/docker-compose.yml index d19f278f7..3a7ca115a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,23 +1,26 @@ version: '3' services: - db: + mastodon_db: + container_name: mastodon_db restart: always image: postgres:14-alpine shm_size: 256mb networks: - - internal_network + - mastodon healthcheck: test: ['CMD', 'pg_isready', '-U', 'postgres'] volumes: - ./postgres14:/var/lib/postgresql/data + env_file: .env.production environment: - 'POSTGRES_HOST_AUTH_METHOD=trust' - redis: + mastodon_redis: + container_name: mastodon_redis restart: always image: redis:7-alpine networks: - - internal_network + - mastodon healthcheck: test: ['CMD', 'redis-cli', 'ping'] volumes: @@ -37,9 +40,9 @@ services: # - "cluster.name=es-mastodon" # - "discovery.type=single-node" # - "thread_pool.write.queue_size=1000" - # networks: - # - external_network - # - internal_network +# networks: +# - mastodon +# - nginx # healthcheck: # test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"] # volumes: @@ -54,57 +57,62 @@ services: # ports: # - '127.0.0.1:9200:9200' - web: + mastodon_web: + container_name: mastodon_web build: . image: ghcr.io/mastodon/mastodon:v4.2.0 restart: always env_file: .env.production command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000" networks: - - external_network - - internal_network + - mastodon + - nginx healthcheck: # prettier-ignore test: ['CMD-SHELL', 'wget -q --spider --proxy=off localhost:3000/health || exit 1'] ports: - '127.0.0.1:3000:3000' depends_on: - - db - - redis + - mastodon_db + - mastodon_redis # - es volumes: - ./public/system:/mastodon/public/system - streaming: + mastodon_streaming: + container_name: mastodon_streaming build: . image: ghcr.io/mastodon/mastodon:v4.2.0 restart: always env_file: .env.production + environment: + - PORT=5000 command: node ./streaming networks: - - external_network - - internal_network + - mastodon + - nginx healthcheck: # prettier-ignore - test: ['CMD-SHELL', 'wget -q --spider --proxy=off localhost:4000/api/v1/streaming/health || exit 1'] + test: ['CMD-SHELL', 'wget -q --spider --proxy=off localhost:5000/api/v1/streaming/health || exit 1'] ports: - - '127.0.0.1:4000:4000' + - '127.0.0.1:5000:5000' depends_on: - - db - - redis + - mastodon_db + - mastodon_redis - sidekiq: + mastodon_sidekiq: + container_name: mastodon_sidekiq build: . image: ghcr.io/mastodon/mastodon:v4.2.0 restart: always env_file: .env.production command: bundle exec sidekiq depends_on: - - db - - redis + - mastodon_db + - mastodon_redis networks: - - external_network - - internal_network + - mastodon + - nginx volumes: - ./public/system:/mastodon/public/system healthcheck: @@ -127,7 +135,22 @@ services: # - external_network # - internal_network + statsd: + image: prom/statsd-exporter + container_name: mastodon_statsd + restart: always + ports: + - 0.0.0.0:9102:9102 + networks: + - mastodon + + networks: - external_network: - internal_network: - internal: true + mastodon: + ipam: + driver: default + config: + - subnet: 172.42.0.0/16 + nginx: + external: true +