version: '3.6'
services:
consul:
image: consul:${CONSUL_VERSION}
restart: always
container_name: consul
environment:
- "SERVICE_TAGS=consul-server"
- "SERVICE_URL=${SERVICE_CONSUL_URL}"
command: >-
agent
-bind=
127.0.0.1 -config-file=/config.json
-enable-script-checks=true
volumes:
- ./config/consul.json:/config.json
- ./data/consul:/consul/data
networks:
- proxy
ports:
- '8300:8300'
- '8301:8301'
- '8301:8301/udp'
- '8302:8302'
- '8302:8302/udp'
- '8500:8500'
- '8600:8600'
- '8600:8600/udp'
# expose:
# - "8300"
# - "8301"
# - "8301/udp"
# - "8500"
# - "8600"
# - "8600/udp"
labels:
- "traefik.enable=true"
- "traefik.http.routers.consul.rule=${CONSUL_HOST_RULE}"
- "traefik.http.routers.consul.tls.certresolver=letsencrypt"
- "traefik.http.services.consul.loadbalancer.passhostheader=true"
- "traefik.http.services.consul.loadbalancer.server.port=8500"
vault:
image: vault:${VAULT_VERSION}
restart: always
container_name: vault
# ports:
# - "8200:8200"
expose:
- "8200"
volumes:
- ./config/vault.json:/config.json
- ./data/vault:/vault/data
cap_add:
- IPC_LOCK
networks:
- proxy
command: >-
server
-config=/config.json
environment:
# - CONSUL_HTTP_SSL=true
- SERVICE_IGNORE=true"
- CONSUL_HTTP_ADDR=consul:8500
- VAULT_ADDR=
http://127.0.0.1:8200 labels:
- "traefik.enable=true"
- "traefik.http.routers.vault.rule=${VAULT_HOST_RULE}"
- "traefik.http.routers.vault.tls.certresolver=letsencrypt"
- "traefik.http.services.vault.loadbalancer.passhostheader=true"
- "traefik.http.services.vault.loadbalancer.server.port=8200"
networks:
proxy:
external: true