Loading .gitlab-ci.yml +9 −5 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ image: registry.gitlab.com/redmic-project/docker/docker-deploy:latest variables: DOCKER_DRIVER: overlay2 STACK: mqtt SERVICES_TO_CHECK: mqtt_${CI_PROJECT_NAME} SERVICES_TO_CHECK: mqtt_${CI_PROJECT_NAME} mqtt_vmq-redis STATUS_CHECK_DELAY: 60 IMAGE_TAG: ${VERNEMQ_IMAGE_TAG:-latest} Loading @@ -18,10 +18,11 @@ deploy-supporting-branch-develop: variables: SSH_REMOTE: ${DEV_SSH_REMOTE} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME} DOCKER_VERNEMQ_ALLOW_ANONYMOUS: ${DEV_DOCKER_VERNEMQ_ALLOW_ANONYMOUS} script: - > deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} DOCKER_VERNEMQ_ALLOW_ANONYMOUS=${DOCKER_VERNEMQ_ALLOW_ANONYMOUS} environment: name: dev Loading @@ -36,10 +37,11 @@ deploy-stable-branch-develop: variables: SSH_REMOTE: ${DEV_SSH_REMOTE} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME} DOCKER_VERNEMQ_ALLOW_ANONYMOUS: ${DEV_DOCKER_VERNEMQ_ALLOW_ANONYMOUS} script: - > deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} DOCKER_VERNEMQ_ALLOW_ANONYMOUS=${DOCKER_VERNEMQ_ALLOW_ANONYMOUS} environment: name: dev Loading @@ -52,10 +54,11 @@ deploy-supporting-branch-production: variables: SSH_REMOTE: ${PRO_SSH_REMOTE} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml PUBLIC_HOSTNAME: ${PRO_PUBLIC_HOSTNAME} DOCKER_VERNEMQ_ALLOW_ANONYMOUS: ${PRO_DOCKER_VERNEMQ_ALLOW_ANONYMOUS} script: - > deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} DOCKER_VERNEMQ_ALLOW_ANONYMOUS=${DOCKER_VERNEMQ_ALLOW_ANONYMOUS} environment: name: pro Loading @@ -70,10 +73,11 @@ deploy-stable-branch-production: variables: SSH_REMOTE: ${PRO_SSH_REMOTE} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml PUBLIC_HOSTNAME: ${PRO_PUBLIC_HOSTNAME} DOCKER_VERNEMQ_ALLOW_ANONYMOUS: ${PRO_DOCKER_VERNEMQ_ALLOW_ANONYMOUS} script: - > deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} DOCKER_VERNEMQ_ALLOW_ANONYMOUS=${DOCKER_VERNEMQ_ALLOW_ANONYMOUS} environment: name: pro Loading deploy/.env +5 −0 Original line number Diff line number Diff line SUBDOMAIN=mqtt DOCKER_VERNEMQ_ALLOW_ANONYMOUS=off DOCKER_VERNEMQ_LISTENER__HTTP__DEFAULT=127.0.0.1:8889 DOCKER_IP_ADDRESS=0.0.0.0 DOCKER_VERNEMQ_VMQ_DIVERSITY__AUTH_REDIS__ENABLED=on DOCKER_VERNEMQ_VMQ_DIVERSITY__REDIS__HOST=vmq-redis DOCKER_VERNEMQ_VMQ_DIVERSITY__REDIS__PORT=6379 deploy/docker-compose.dev.yml +4 −0 Original line number Diff line number Diff line version: '3.5' volumes: redis-data-vol: name: ${REDIS_DATA_VOL_NAME:-vernemq-redis-data-vol} deploy/docker-compose.prod.yml +9 −0 Original line number Diff line number Diff line Loading @@ -6,3 +6,12 @@ services: placement: constraints: - node.role == worker volumes: redis-data-vol: name: ${REDIS_DATA_VOL_NAME:-vernemq-redis-data-vol} driver: 'cloudstor:aws' driver_opts: backing: relocatable size: 1 ebstype: gp2 deploy/docker-compose.tmpl.yml +53 −4 Original line number Diff line number Diff line Loading @@ -4,32 +4,81 @@ services: vernemq: image: erlio/docker-vernemq:${IMAGE_TAG:-latest} environment: - DOCKER_VERNEMQ_NODENAME=vmq-{{.Task.Slot}} - DOCKER_VERNEMQ_ALLOW_ANONYMOUS - DOCKER_VERNEMQ_LISTENER__HTTP__DEFAULT - DOCKER_IP_ADDRESS networks: - vernemq-net - traefik-net ports: - target: 1883 published: 1883 protocol: tcp mode: host - target: 8883 published: 8883 protocol: tcp mode: host volumes: - vernemq-data-vol:/vernemq/data - vernemq-etc-vol:/vernemq/etc - vernemq-log-vol:/vernemq/log deploy: mode: replicated replicas: 1 labels: traefik.frontend.rule: Host:${SUBDOMAIN}.${PUBLIC_HOSTNAME} traefik.websocket.frontend.rule: Host:${SUBDOMAIN}.${PUBLIC_HOSTNAME} traefik.metrics.frontend.rule: Host:${SUBDOMAIN}.${PUBLIC_HOSTNAME};Path:/metrics traefik.backend: vernemq traefik.port: '8080' traefik.websocket.port: '8080' traefik.metrics.port: '8888' restart_policy: delay: 10s window: 2m resources: limits: cpus: '1' memory: 128M memory: 256M reservations: memory: 205M vmq-redis: image: redis:${REDIS_IMAGE_TAG:-latest} command: redis-server --appendonly yes networks: - vernemq-net volumes: - redis-data-vol:/data deploy: mode: replicated replicas: 1 restart_policy: delay: 10s window: 1m resources: limits: cpus: '0.1' memory: 64M reservations: memory: 103M memory: 52M networks: vernemq-net: name: ${VERNEMQ_NET_NAME} driver: overlay attachable: ${VERNEMQ_NET_ATTACHABLE:-true} traefik-net: name: ${TRAEFIK_NET_NAME:-traefik-net} external: true volumes: vernemq-data-vol: name: ${VERNEMQ_DATA_VOL_NAME:-vernemq-data-vol} vernemq-etc-vol: name: ${VERNEMQ_ETC_VOL_NAME:-vernemq-etc-vol} vernemq-log-vol: name: ${VERNEMQ_LOG_VOL_NAME:-vernemq-log-vol} Loading
.gitlab-ci.yml +9 −5 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ image: registry.gitlab.com/redmic-project/docker/docker-deploy:latest variables: DOCKER_DRIVER: overlay2 STACK: mqtt SERVICES_TO_CHECK: mqtt_${CI_PROJECT_NAME} SERVICES_TO_CHECK: mqtt_${CI_PROJECT_NAME} mqtt_vmq-redis STATUS_CHECK_DELAY: 60 IMAGE_TAG: ${VERNEMQ_IMAGE_TAG:-latest} Loading @@ -18,10 +18,11 @@ deploy-supporting-branch-develop: variables: SSH_REMOTE: ${DEV_SSH_REMOTE} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME} DOCKER_VERNEMQ_ALLOW_ANONYMOUS: ${DEV_DOCKER_VERNEMQ_ALLOW_ANONYMOUS} script: - > deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} DOCKER_VERNEMQ_ALLOW_ANONYMOUS=${DOCKER_VERNEMQ_ALLOW_ANONYMOUS} environment: name: dev Loading @@ -36,10 +37,11 @@ deploy-stable-branch-develop: variables: SSH_REMOTE: ${DEV_SSH_REMOTE} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME} DOCKER_VERNEMQ_ALLOW_ANONYMOUS: ${DEV_DOCKER_VERNEMQ_ALLOW_ANONYMOUS} script: - > deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} DOCKER_VERNEMQ_ALLOW_ANONYMOUS=${DOCKER_VERNEMQ_ALLOW_ANONYMOUS} environment: name: dev Loading @@ -52,10 +54,11 @@ deploy-supporting-branch-production: variables: SSH_REMOTE: ${PRO_SSH_REMOTE} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml PUBLIC_HOSTNAME: ${PRO_PUBLIC_HOSTNAME} DOCKER_VERNEMQ_ALLOW_ANONYMOUS: ${PRO_DOCKER_VERNEMQ_ALLOW_ANONYMOUS} script: - > deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} DOCKER_VERNEMQ_ALLOW_ANONYMOUS=${DOCKER_VERNEMQ_ALLOW_ANONYMOUS} environment: name: pro Loading @@ -70,10 +73,11 @@ deploy-stable-branch-production: variables: SSH_REMOTE: ${PRO_SSH_REMOTE} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml PUBLIC_HOSTNAME: ${PRO_PUBLIC_HOSTNAME} DOCKER_VERNEMQ_ALLOW_ANONYMOUS: ${PRO_DOCKER_VERNEMQ_ALLOW_ANONYMOUS} script: - > deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} DOCKER_VERNEMQ_ALLOW_ANONYMOUS=${DOCKER_VERNEMQ_ALLOW_ANONYMOUS} environment: name: pro Loading
deploy/.env +5 −0 Original line number Diff line number Diff line SUBDOMAIN=mqtt DOCKER_VERNEMQ_ALLOW_ANONYMOUS=off DOCKER_VERNEMQ_LISTENER__HTTP__DEFAULT=127.0.0.1:8889 DOCKER_IP_ADDRESS=0.0.0.0 DOCKER_VERNEMQ_VMQ_DIVERSITY__AUTH_REDIS__ENABLED=on DOCKER_VERNEMQ_VMQ_DIVERSITY__REDIS__HOST=vmq-redis DOCKER_VERNEMQ_VMQ_DIVERSITY__REDIS__PORT=6379
deploy/docker-compose.dev.yml +4 −0 Original line number Diff line number Diff line version: '3.5' volumes: redis-data-vol: name: ${REDIS_DATA_VOL_NAME:-vernemq-redis-data-vol}
deploy/docker-compose.prod.yml +9 −0 Original line number Diff line number Diff line Loading @@ -6,3 +6,12 @@ services: placement: constraints: - node.role == worker volumes: redis-data-vol: name: ${REDIS_DATA_VOL_NAME:-vernemq-redis-data-vol} driver: 'cloudstor:aws' driver_opts: backing: relocatable size: 1 ebstype: gp2
deploy/docker-compose.tmpl.yml +53 −4 Original line number Diff line number Diff line Loading @@ -4,32 +4,81 @@ services: vernemq: image: erlio/docker-vernemq:${IMAGE_TAG:-latest} environment: - DOCKER_VERNEMQ_NODENAME=vmq-{{.Task.Slot}} - DOCKER_VERNEMQ_ALLOW_ANONYMOUS - DOCKER_VERNEMQ_LISTENER__HTTP__DEFAULT - DOCKER_IP_ADDRESS networks: - vernemq-net - traefik-net ports: - target: 1883 published: 1883 protocol: tcp mode: host - target: 8883 published: 8883 protocol: tcp mode: host volumes: - vernemq-data-vol:/vernemq/data - vernemq-etc-vol:/vernemq/etc - vernemq-log-vol:/vernemq/log deploy: mode: replicated replicas: 1 labels: traefik.frontend.rule: Host:${SUBDOMAIN}.${PUBLIC_HOSTNAME} traefik.websocket.frontend.rule: Host:${SUBDOMAIN}.${PUBLIC_HOSTNAME} traefik.metrics.frontend.rule: Host:${SUBDOMAIN}.${PUBLIC_HOSTNAME};Path:/metrics traefik.backend: vernemq traefik.port: '8080' traefik.websocket.port: '8080' traefik.metrics.port: '8888' restart_policy: delay: 10s window: 2m resources: limits: cpus: '1' memory: 128M memory: 256M reservations: memory: 205M vmq-redis: image: redis:${REDIS_IMAGE_TAG:-latest} command: redis-server --appendonly yes networks: - vernemq-net volumes: - redis-data-vol:/data deploy: mode: replicated replicas: 1 restart_policy: delay: 10s window: 1m resources: limits: cpus: '0.1' memory: 64M reservations: memory: 103M memory: 52M networks: vernemq-net: name: ${VERNEMQ_NET_NAME} driver: overlay attachable: ${VERNEMQ_NET_ATTACHABLE:-true} traefik-net: name: ${TRAEFIK_NET_NAME:-traefik-net} external: true volumes: vernemq-data-vol: name: ${VERNEMQ_DATA_VOL_NAME:-vernemq-data-vol} vernemq-etc-vol: name: ${VERNEMQ_ETC_VOL_NAME:-vernemq-etc-vol} vernemq-log-vol: name: ${VERNEMQ_LOG_VOL_NAME:-vernemq-log-vol}