services: postgres: image: postgres:16.3-bookworm container_name: postgres environment: POSTGRES_USER: exampleuser POSTGRES_PASSWORD: examplepass POSTGRES_DB: exampledb volumes: - postgres_data:/var/lib/postgresql/data - ./init/postgres:/docker-entrypoint-initdb.d ports: - "5432:5432" # Exposing PostgreSQL to the host expose: - "5432" networks: - backend rabbitmq: image: rabbitmq:3-management hostname: rabbitmq container_name: rabbitmq volumes: - ./init/rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf:ro - ./init/rabbitmq/definitions.json:/etc/rabbitmq/definitions.json:ro expose: - "5672" - "15672" ports: - "5672:5672" - "15672:15672" networks: - backend healthcheck: test: [ "CMD", "nc", "-z", "localhost", "5672" ] interval: 5s timeout: 15s retries: 1 server: build: context: ./cmd/server dockerfile: Dockerfile container_name: server ports: - "8080:8080" depends_on: - postgres - rabbitmq networks: - backend minio: image: minio/minio:RELEASE.2024-06-11T03-13-30Z container_name: minio ports: - "9000:9000" - "9001:9001" environment: MINIO_ROOT_USER: user MINIO_ROOT_PASSWORD: musty-coke command: server /data --console-address ":9001" volumes: - minio-data:/data agent: build: context: . dockerfile: ./cmd/agent/Dockerfile container_name: agent depends_on: - rabbitmq - minio environment: MRVA_RABBITMQ_HOST: rabbitmq MRVA_RABBITMQ_PORT: 5672 MRVA_RABBITMQ_USER: user MRVA_RABBITMQ_PASSWORD: password networks: - backend volumes: minio-data: postgres_data: driver: local networks: backend: driver: bridge