- version: '3'
- services:
-
- db:
- restart: always
- image: postgres:9.6-alpine
- shm_size: 256mb
- networks:
- - internal_network
- healthcheck:
- test: ["CMD", "pg_isready", "-U", "postgres"]
- volumes:
- - ./postgres:/var/lib/postgresql/data
-
- redis:
- restart: always
- image: redis:6.0-alpine
- networks:
- - internal_network
- healthcheck:
- test: ["CMD", "redis-cli", "ping"]
- volumes:
- - ./redis:/data
-
- # es:
- # restart: always
- # image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.1.3
- # environment:
- # - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- # networks:
- # - internal_network
- # healthcheck:
- # test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"]
- # volumes:
- # - ./elasticsearch:/usr/share/elasticsearch/data
-
- web:
- build: .
- image: tootsuite/mastodon
- 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
- healthcheck:
- test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost:3000/health || exit 1"]
- ports:
- - "127.0.0.1:3000:3000"
- depends_on:
- - db
- - redis
- # - es
- volumes:
- - ./public/system:/mastodon/public/system
-
- streaming:
- build: .
- image: tootsuite/mastodon
- restart: always
- env_file: .env.production
- command: node ./streaming
- networks:
- - external_network
- - internal_network
- healthcheck:
- test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost:4000/api/v1/streaming/health || exit 1"]
- ports:
- - "127.0.0.1:4000:4000"
- depends_on:
- - db
- - redis
-
- sidekiq:
- build: .
- image: tootsuite/mastodon
- restart: always
- env_file: .env.production
- command: bundle exec sidekiq
- depends_on:
- - db
- - redis
- networks:
- - external_network
- - internal_network
- volumes:
- - ./public/system:/mastodon/public/system
- ## Uncomment to enable federation with tor instances along with adding the following ENV variables
- ## http_proxy=http://privoxy:8118
- ## ALLOW_ACCESS_TO_HIDDEN_SERVICE=true
- # tor:
- # image: sirboops/tor
- # networks:
- # - external_network
- # - internal_network
- #
- # privoxy:
- # image: sirboops/privoxy
- # volumes:
- # - ./priv-config:/opt/config
- # networks:
- # - external_network
- # - internal_network
-
- networks:
- external_network:
- internal_network:
- internal: true
|