.devcontainer/compose.yaml

Summary

Maintainability
Test Coverage
version: '3'

services:
  rails:
    build:
      context: ..
      dockerfile: .devcontainer/Dockerfile

    volumes:
      - ../..:/workspaces:cached

    # Overrides default command so things don't shut down after the process ends.
    command: sleep infinity

    # Runs app on the same network as the database container, allows "forwardPorts" in devcontainer.json function.
    networks:
      - default

    depends_on:
      - postgres
      - mariadb
      - redis
      - memcached

    # Use "forwardPorts" in **devcontainer.json** to forward an app port locally.
    # (Adding the "ports" property to this file will not forward from a Codespace.)

  postgres:
    image: postgres:latest
    restart: unless-stopped
    networks:
      - default
    volumes:
      - postgres-data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: postgres
      POSTGRES_DB: postgres
      POSTGRES_PASSWORD: postgres

  mariadb:
    image: mariadb:latest
    restart: unless-stopped
    networks:
      - default
    volumes:
      - mariadb-data:/var/lib/mysql
    environment:
      MARIADB_ROOT_PASSWORD: root

  redis:
    image: redis:latest
    restart: unless-stopped
    networks:
      - default
    volumes:
      - redis-data:/data

  memcached:
    image: memcached:latest
    restart: unless-stopped
    command: ["-m", "1024"]
    networks:
      - default

networks:
  default:

volumes:
  postgres-data:
  mariadb-data:
  redis-data: