version: "3"

services:
  minio:
    image: quay.io/minio/minio
    container_name: minio
    hostname: minio
    command: server --address 0.0.0.0:10000 --console-address 0.0.0.0:10001 /data
    ports:
      - '127.0.0.1:10000:10000'
      - '127.0.0.1:10001:10001'
    environment:
      - MINIO_ROOT_USER=minioadmin
      - MINIO_ROOT_PASSWORD=minioadminpassword

  createbuckets:
    image: minio/mc
    depends_on:
      - minio
    entrypoint: >
      /bin/sh -c "
      /usr/bin/mc alias set myminio http://minio:10000 minioadmin minioadminpassword;
      /usr/bin/mc admin info myminio;
      /usr/bin/mc mb myminio/flux-releaser;
      /usr/bin/mc policy set public myminio/flux-releaser;
      exit 0;
      "      

  nats:
    image: bitnami/nats:2.10.10
    ports:
      - "4222:4222"
    environment:
      - NATS_ENABLE_AUTH=yes
      - NATS_USERNAME=user
      - NATS_PASSWORD=secret

  crdb:
    restart: 'always'
    image: 'cockroachdb/cockroach:latest'
    command: 'start-single-node --advertise-addr 0.0.0.0 --insecure'
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/health?ready=1"]
      interval: '10s'
      timeout: '30s'
      retries: 5
      start_period: '20s'
    ports:
      - '28080:8080'
      - '26257:26257'