# Docker-compose file is used only for local development. This is not production-ready example. version: '3.8' volumes: tmp-data: {} golint-go: {} golint-cache: {} services: app: &go build: {target: builder} environment: HOME: /tmp GOPATH: /tmp volumes: - /etc/passwd:/etc/passwd:ro - /etc/group:/etc/group:ro - .:/src:rw - tmp-data:/tmp:rw security_opt: [no-new-privileges:true] web: <<: *go ports: - "8080:8080/tcp" # Open command: sh -c "go build -buildvcs=false -o /tmp/app ./cmd/error-pages && /tmp/app serve --show-details --proxy-headers=X-Foo,Bar,Baz_blah --catch-all" healthcheck: test: ['CMD', '/tmp/app', '--log-json', 'healthcheck'] interval: 4s start_period: 5s retries: 5 golint: image: golangci/golangci-lint:v1.56-alpine # Image page: environment: GOLANGCI_LINT_CACHE: /tmp/golint # volumes: - golint-go:/go:rw # go dependencies will be downloaded on each run without this - golint-cache:/tmp/golint:rw - .:/src:ro working_dir: /src security_opt: [no-new-privileges:true] hurl: image: orangeopensource/hurl:1.8.0 volumes: - .:/src:ro working_dir: /src depends_on: web: {condition: service_healthy} security_opt: [no-new-privileges:true]