forked from mirrors/catstodon
81cefc1913
Both of yarn and npm are used in Mastodon, but the combined usage requires a redundant dependency and may lead to data inconsistency. Considering that yarn has autoclean feature which npm does not have, this change replaces all npm usage with yarn. This change requires documentation update. Most notably, the following command must be executed before assets precompilation if any system dependency of node-sass has changed: yarn install --force --pure-lockfile
87 lines
1.8 KiB
YAML
87 lines
1.8 KiB
YAML
version: '3'
|
|
services:
|
|
|
|
db:
|
|
restart: always
|
|
image: postgres:9.6-alpine
|
|
networks:
|
|
- internal_network
|
|
### Uncomment to enable DB persistance
|
|
# volumes:
|
|
# - ./postgres:/var/lib/postgresql/data
|
|
|
|
redis:
|
|
restart: always
|
|
image: redis:4.0-alpine
|
|
networks:
|
|
- internal_network
|
|
### Uncomment to enable REDIS persistance
|
|
# 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
|
|
#### Uncomment to enable ES persistance
|
|
## volumes:
|
|
## - ./elasticsearch:/usr/share/elasticsearch/data
|
|
|
|
web:
|
|
build: .
|
|
image: gargron/mastodon
|
|
restart: always
|
|
env_file: .env.production
|
|
command: bundle exec rails s -p 3000 -b '0.0.0.0'
|
|
networks:
|
|
- external_network
|
|
- internal_network
|
|
ports:
|
|
- "3000:3000"
|
|
depends_on:
|
|
- db
|
|
- redis
|
|
# - es
|
|
volumes:
|
|
- ./public/assets:/mastodon/public/assets
|
|
- ./public/packs:/mastodon/public/packs
|
|
- ./public/system:/mastodon/public/system
|
|
|
|
streaming:
|
|
build: .
|
|
image: gargron/mastodon
|
|
restart: always
|
|
env_file: .env.production
|
|
command: yarn start
|
|
networks:
|
|
- external_network
|
|
- internal_network
|
|
ports:
|
|
- "4000:4000"
|
|
depends_on:
|
|
- db
|
|
- redis
|
|
|
|
sidekiq:
|
|
build: .
|
|
image: gargron/mastodon
|
|
restart: always
|
|
env_file: .env.production
|
|
command: bundle exec sidekiq -q default -q mailers -q pull -q push
|
|
depends_on:
|
|
- db
|
|
- redis
|
|
networks:
|
|
- external_network
|
|
- internal_network
|
|
volumes:
|
|
- ./public/packs:/mastodon/public/packs
|
|
- ./public/system:/mastodon/public/system
|
|
|
|
networks:
|
|
external_network:
|
|
internal_network:
|
|
internal: true
|