version: '2'
services:
  db:
    image: postgres
  redis:
    image: redis
  neo4j:
    build:
      context: .
      dockerfile: Dockerfile.neo4j
  web:
    build:
      context: .
      dockerfile: Dockerfile.app
    env_file: .env.production
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    ports:
      - "3000:3000"
    depends_on:
      - db
      - redis
      - neo4j
    volumes:
      - ./public/assets:/mastodon/public/assets
      - ./public/system:/mastodon/public/system
  sidekiq:
    build:
      context: .
      dockerfile: Dockerfile.app
    env_file: .env.production
    command: bundle exec sidekiq -q default -q mailers
    depends_on:
      - db
      - redis
      - neo4j
    volumes:
      - ./public/system:/mastodon/public/system

version: '2'
services:
  db:
    restart: always
    image: postgres
  redis:
    restart: always
    image: redis
  neo4j:
    restart: always
    build:
      context: .
      dockerfile: Dockerfile.neo4j
  web:
    restart: always
    build:
      context: .
      dockerfile: Dockerfile.app
    env_file: .env.production
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    ports:
      - "3000:3000"
    depends_on:
      - db
      - redis
      - neo4j
    volumes:
      - ./public/assets:/mastodon/public/assets
      - ./public/system:/mastodon/public/system
  sidekiq:
    restart: always
    build:
      context: .
      dockerfile: Dockerfile.app
    env_file: .env.production
    command: bundle exec sidekiq -q default -q mailers
    depends_on:
      - db
      - redis
      - neo4j
    volumes:
      - ./public/system:/mastodon/public/system

Add restart policy to docker compose
Add restart policy to docker compose
