version: "3.0" services: reverse-proxy: image: traefik:v2.1.3 command: - --entrypoints.web.address=:80 - --entrypoints.websecure.address=:443 - --providers.docker=true - --certificatesResolvers.le.acme.httpChallenge.entryPoint=web - --certificatesresolvers.le.acme.email=martin.eigenmann@unisg.ch - --certificatesresolvers.le.acme.storage=/acme.json - --providers.docker.exposedByDefault=false - --serversTransport.insecureSkipVerify=true ports: - "80:80" - "443:443" volumes: - /var/run/docker.sock:/var/run/docker.sock - ./acme.json:/acme.json restart: unless-stopped labels: - "traefik.enable=true" - "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)" - "traefik.http.routers.http-catchall.entrypoints=web" - "traefik.http.routers.http-catchall.middlewares=redirect-to-https" - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" tapas-db: image: mongo restart: unless-stopped container_name: tapas_mongodb environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: password ports: - "27017:27017" command: mongod --quiet --logpath /dev/null tapas-tasks: image: openjdk command: "java -jar /data/tapas-tasks-0.0.1-SNAPSHOT.jar" restart: unless-stopped depends_on: - tapas-db volumes: - ./:/data/ environment: roster.uri: http://roster:8082 spring.data.mongodb.uri: mongodb://root:password@tapas-db:27017 labels: - "traefik.enable=true" - "traefik.http.routers.tapas-tasks.rule=Host(`tapas-tasks.${PUB_IP}.nip.io`)" - "traefik.http.routers.tapas-tasks.service=tapas-tasks" - "traefik.http.services.tapas-tasks.loadbalancer.server.port=8081" - "traefik.http.routers.tapas-tasks.tls=true" - "traefik.http.routers.tapas-tasks.entryPoints=web,websecure" - "traefik.http.routers.tapas-tasks.tls.certresolver=le" tapas-auction-house: image: openjdk command: "java -jar /data/tapas-auction-house-0.0.1-SNAPSHOT.jar" restart: unless-stopped depends_on: - tapas-db volumes: - ./:/data/ environment: mqtt.broker.uri: tcp://broker.hivemq.com:1883 discovery.endpoint.uri: https://tapas-auction-house.86-119-34-242.nip.io auction.house.uri: https://tapas-auction-house.86-119-35-40.nip.io tasks.list.uri: https://tapas-tasks.86-119-35-40.nip.io labels: - "traefik.enable=true" - "traefik.http.routers.tapas-auction-house.rule=Host(`tapas-auction-house.${PUB_IP}.nip.io`)" - "traefik.http.routers.tapas-auction-house.service=tapas-auction-house" - "traefik.http.services.tapas-auction-house.loadbalancer.server.port=8086" - "traefik.http.routers.tapas-auction-house.tls=true" - "traefik.http.routers.tapas-auction-house.entryPoints=web,websecure" - "traefik.http.routers.tapas-auction-house.tls.certresolver=le" roster: image: openjdk command: "java -jar /data/roster-0.0.1-SNAPSHOT.jar" restart: unless-stopped depends_on: - tapas-db volumes: - ./:/data/ environment: task.list.uri: http://tapas-tasks:8081 auction.house.uri: http://tapas-auction-house:8086 executor.pool.uri: http://executor-pool:8083 mqtt.broker.uri: tcp://broker.hivemq.com:1883 spring.data.mongodb.uri: mongodb://root:password@tapas-db:27017 labels: - "traefik.enable=true" - "traefik.http.routers.roster.rule=Host(`roster.${PUB_IP}.nip.io`)" - "traefik.http.routers.roster.service=roster" - "traefik.http.services.roster.loadbalancer.server.port=8082" - "traefik.http.routers.roster.tls=true" - "traefik.http.routers.roster.entryPoints=web,websecure" - "traefik.http.routers.roster.tls.certresolver=le" executor-pool: image: openjdk command: "java -jar /data/executor-pool-0.0.1-SNAPSHOT.jar" restart: unless-stopped depends_on: - tapas-db volumes: - ./:/data/ environment: mqtt.broker.uri: tcp://broker.hivemq.com:1883 spring.data.mongodb.uri: mongodb://root:password@tapas-db:27017 labels: - "traefik.enable=true" - "traefik.http.routers.executor-pool.rule=Host(`executor-pool.${PUB_IP}.nip.io`)" - "traefik.http.routers.executor-pool.service=executor-pool" - "traefik.http.services.executor-pool.loadbalancer.server.port=8083" - "traefik.http.routers.executor-pool.tls=true" - "traefik.http.routers.executor-pool.entryPoints=web,websecure" - "traefik.http.routers.executor-pool.tls.certresolver=le" executor-computation: image: openjdk command: "java -jar /data/executor-computation-0.0.1-SNAPSHOT.jar" restart: unless-stopped depends_on: - executor-pool - roster - tapas-db volumes: - ./:/data/ environment: executor.type: COMPUTATION executor.uri: http://executor-computation:8085 executor.pool.uri: http://executor-pool:8083 roster.uri: http://roster:8082 labels: - "traefik.enable=true" - "traefik.http.routers.executor-computation.rule=Host(`executor-computation.${PUB_IP}.nip.io`)" - "traefik.http.routers.executor-computation.service=executor-computation" - "traefik.http.services.executor-computation.loadbalancer.server.port=8085" - "traefik.http.routers.executor-computation.tls=true" - "traefik.http.routers.executor-computation.entryPoints=web,websecure" - "traefik.http.routers.executor-computation.tls.certresolver=le" executor-robot: image: openjdk command: "java -jar /data/executor-robot-0.0.1-SNAPSHOT.jar" restart: unless-stopped depends_on: - executor-pool - roster - tapas-db volumes: - ./:/data/ environment: executor.type: SMALLROBOT executor.uri: http://executor-robot:8084 executor.pool.uri: http://executor-pool:8083 roster.uri: http://roster:8082 labels: - "traefik.enable=true" - "traefik.http.routers.executor-robot.rule=Host(`executor-robot.${PUB_IP}.nip.io`)" - "traefik.http.routers.executor-robot.service=executor-robot" - "traefik.http.services.executor-robot.loadbalancer.server.port=8084" - "traefik.http.routers.executor-robot.tls=true" - "traefik.http.routers.executor-robot.entryPoints=web,websecure" - "traefik.http.routers.executor-robot.tls.certresolver=le" executor-humidity: image: openjdk command: "java -jar /data/executor-humidity-0.0.1-SNAPSHOT.jar" restart: unless-stopped depends_on: - executor-pool - roster - tapas-db volumes: - ./:/data/ environment: executor.type: HUMIDITY executor.uri: http://executor-humidity:8087 executor.pool.uri: http://executor-pool:8083 roster.uri: http://roster:8082 labels: - "traefik.enable=true" - "traefik.http.routers.executor-computation.rule=Host(`executor-humidity.${PUB_IP}.nip.io`)" - "traefik.http.routers.executor-computation.service=executor-computation" - "traefik.http.services.executor-computation.loadbalancer.server.port=8087" - "traefik.http.routers.executor-computation.tls=true" - "traefik.http.routers.executor-computation.entryPoints=web,websecure" - "traefik.http.routers.executor-computation.tls.certresolver=le"