Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
docker-compose.yml 3.02 KiB
version: '3'

services:
  server:
    build:
      context: .
      dockerfile: Dockerfile
    depends_on:
      - db
      - filehosting
      - createbucket
    command: ['yarn', 'coko-server', 'start-dev']
    ports:
      - ${SERVER_PORT:-3000}:${SERVER_PORT:-3000}
    environment:
      - NODE_ENV=${NODE_ENV:-development}
      - NODE_CONFIG_DIR=./dev/config
      - POSTGRES_HOST=db
      - POSTGRES_PORT=${POSTGRES_PORT:-5432}
      - POSTGRES_DB=${POSTGRES_DB:-test_db}
      - POSTGRES_USER=${POSTGRES_USER:-test_user}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-password}
      # - POSTGRES_ALLOW_SELF_SIGNED_CERTIFICATES=1
      - SECRET=${SECRET:-theSecret}
      - SERVER_PORT=${SERVER_PORT:-3000}
      - ALLOW_CONFIG_MUTATIONS=${ALLOW_CONFIG_MUTATIONS:-''}
      # - CLIENT_URL=${CLIENT_URL:-http://0.0.0.0:4000////}
      # - SERVER_URL=http://www.google.com///
      # - MAILER_SENDER=${MAILER_SENDER:-dev@example.com}
      # - MAILER_HOSTNAME=${MAILER_HOSTNAME}
      # - MAILER_PORT=${MAILER_PORT}
      # - MAILER_USER=${MAILER_USER}
      # - MAILER_PASSWORD=${MAILER_PASSWORD}
      - S3_PROTOCOL=http
      - S3_HOST=filehosting
      - S3_PORT=${S3_PORT:-9000}
      - S3_ACCESS_KEY_ID=${S3_ACCESS_KEY_ID:-nonRootUser}
      - S3_SECRET_ACCESS_KEY=${S3_SECRET_ACCESS_KEY:-nonRootPassword}
      - S3_BUCKET=${S3_BUCKET:-uploads}
    volumes:
      - ./dev:/home/node/app/dev
      - ./src:/home/node/app/src
      - ./authorization:/home/node/app/authorization
    tty: true

  db:
    image: postgres:15-alpine
    ports:
      - ${POSTGRES_PORT:-5432}:5432
    environment:
      - POSTGRES_DB=${POSTGRES_DB:-test_db}
      - POSTGRES_USER=${POSTGRES_USER:-test_user}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-password}

  filehosting:
    image: minio/minio:RELEASE.2023-03-24T21-41-23Z
    ports:
      - ${S3_PORT:-9000}:9000
      - ${MINIO_CONSOLE_PORT:-9001}:9001
    volumes:
      - minio_storage:/data
    environment:
      - MINIO_ROOT_USER=${MINIO_ROOT_USER:-admin}
      - MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD:-superSecretAdminPassword}
    command: server --console-address ":${MINIO_CONSOLE_PORT:-9001}" /data
    healthcheck:
      test: ['CMD', 'curl', '-f', 'http://localhost:9000/minio/health/live']
      interval: 0.5s
      timeout: 20s
      retries: 30