version: '3' volumes: persistent-data: services: rove-accountant: build: context: . dockerfile: Dockerfile image: rove:latest ports: - "9091:9091" environment: - ROVE_ACCOUNTANT_GRPC=:9091 - DATA_PATH=/mnt/rove-server volumes: - persistent-data:/mnt/rove-server:rw command: [ ./rove-accountant ] rove-reverse-proxy: build: context: . dockerfile: Dockerfile image: rove:latest ports: - "8080:8080" environment: - ROVE_HTTP=:8080 - ROVE_GRPC=:9090 command: [ ./rove-reverse-proxy ] rove-docs: build: context: . dockerfile: Dockerfile.docs image: rove-docs:latest ports: - "80:80" environment: - PORT=80 rove-server: depends_on: [ rove-accountant, rove-reverse-proxy, rove-docs] build: context: . dockerfile: Dockerfile image: rove:latest ports: - "9090:9090" environment: - ROVE_GRPC=:9090 - DATA_PATH=/mnt/rove-server - ROVE_ACCOUNTANT_GRPC=:9091 volumes: - persistent-data:/mnt/rove-server:rw rove-tests: depends_on: [ rove-server ] build: context: . dockerfile: Dockerfile image: rove:latest environment: - ROVE_ACCOUNTANT_GRPC=:9091 - ROVE_GRPC=rove-server:9090 command: [ "go", "test", "-v", "./...", "--tags=integration", "-cover", "-coverprofile=/mnt/coverage-data/c.out", "-count", "1" ] volumes: - /tmp/coverage-data:/mnt/coverage-data:rw