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
		
			
				
	
	
		
			88 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			88 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
 |