version: '3' services: mysql: # MySQL volumes: - mysql-volume:/var/lib/mysql image: mysql user: mysql command: - mysqld - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci environment: MYSQL_ROOT_PASSWORD: ${PP_DB_PASSWORD} MYSQL_DATABASE: popcon redis: image: redis entrypoint: - sh - -c - echo save 90 1 | redis-server - --requirepass ${PP_DB_PASSWORD} traefik: image: traefik depends_on: - consul-manager ports: - 80:80 - 443:443 command: - --web - --consul - --consul.endpoint=http://consul-manager:8500 - --consul.watch=true - --debug # If you need slave nodes, launch them like "docker run -d --name consul-test-node --link consul-test:consul consul agent -node=consul2 -join=consul -bind=0.0.0.0 -node-id=$(cat /proc/sys/kernel/random/uuid) -datacenter=dc1 -dev" consul-manager: image: consul command: - agent - -bind=0.0.0.0 - -client=0.0.0.0 - -server - -bootstrap - -datacenter=popcon mongo: image: mongo volumes: - mongo-volume:/data/db # ランキング/ジャッジコントローラ ppjc: image: tsuzu/popcon-sc-ppjc ports: - 5050:80 environment: PP_MYSQL_ADDR: "root:${PP_DB_PASSWORD}@tcp(mysql:3306)/popcon?charset=utf8mb4&parseTime=True" PP_REDIS_ADDR: "redis:6379" PP_REDIS_PASS: "${PP_DB_PASSWORD}" PP_MONGO_ADDR: "mongo:27017" PP_MS_ADDR: "http://ppms:7502/" PP_TOKEN: ${PP_TOKEN} PP_DEBUG_MODE: 1 PP_PPROF: 1 ppms: image: tsuzu/popcon-sc-ppms environment: PP_MONGO_ADDR: "mongo:27017" PP_TOKEN: ${PP_TOKEN} # Webサーバ ppweb: image: tsuzu/popcon-sc-ppweb depends_on: - consul-manager ports: - 1234:80 command: - --enable-traefik-registration - --debug environment: PP_MYSQL_ADDR: "root:${PP_DB_PASSWORD}@tcp(mysql:3306)/popcon?charset=utf8mb4&parseTime=True" PP_REDIS_ADDR: "redis:6379" PP_REDIS_PASS: "${PP_DB_PASSWORD}" PP_MONGO_ADDR: "mongo:27017" PP_JC_ADDR: "http://ppjc/" PP_MS_ADDR: "http://ppms:7502/" PP_CONSUL_ADDR: "http://consul-manager:8500/" PP_TRAEFIK_PREFIX: traefik PP_TRAEFIK_BACKEND: ppweb PP_TOKEN: ${PP_TOKEN} PP_IFACE: eth0 volumes: mysql-volume: driver: local mongo-volume: driver: local