version: '3.2' services: haproxy: container_name: proxy image: haproxy ports: - "80:8080" - "443:8443" volumes: - ./haproxy:/usr/local/etc/haproxy pwd1: # pwd daemon container always needs to be named this way container_name: pwd1 # use the latest golang image image: golang # go to the right place and starts the app command: /bin/sh -c 'ssh-keygen -N "" -t rsa -f /etc/ssh/ssh_host_rsa_key >/dev/null; cd /go/src/github.com/play-with-docker/play-with-docker; go run api.go -save /pwd/sessions1 -name pwd1 -cname host1' volumes: # since this app creates networks and launches containers, we need to talk to docker daemon - /var/run/docker.sock:/var/run/docker.sock # mount the box mounted shared folder to the container - $GOPATH/src:/go/src - sessions:/pwd environment: GOOGLE_RECAPTCHA_DISABLED: "true" ports: - "1022:1022" pwd2: # pwd daemon container always needs to be named this way container_name: pwd2 # use the latest golang image image: golang # go to the right place and starts the app command: /bin/sh -c 'ssh-keygen -N "" -t rsa -f /etc/ssh/ssh_host_rsa_key >/dev/null; cd /go/src/github.com/play-with-docker/play-with-docker; go run api.go -save /pwd/sessions2 -name pwd2 -cname host2' volumes: # since this app creates networks and launches containers, we need to talk to docker daemon - /var/run/docker.sock:/var/run/docker.sock # mount the box mounted shared folder to the container - $GOPATH/src:/go/src - sessions:/pwd environment: GOOGLE_RECAPTCHA_DISABLED: "true" ports: - "1023:1022" prometheus: container_name: prometheus image: prom/prometheus volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml grafana: container_name: grafana image: grafana/grafana ports: - "3000:3000" volumes: - grafana:/var/lib/grafana volumes: sessions: grafana: