Commit 2b8c4183 authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Define versión inicial de despliegue y config

parent 45d13a90
Loading
Loading
Loading
Loading

.gitlab-ci.yml

0 → 100644
+82 −0
Original line number Diff line number Diff line
stages:
  - deploy

image: registry.gitlab.com/redmic-project/docker/docker-deploy:latest

variables:
  DOCKER_DRIVER: overlay2
  STACK: mqtt
  SERVICES_TO_CHECK: mqtt_${CI_PROJECT_NAME}
  STATUS_CHECK_DELAY: 60
  IMAGE_TAG: ${VERNEMQ_IMAGE_TAG:-latest}

services:
  - docker:dind

deploy-supporting-branch-develop:
  stage: deploy
  variables:
    SSH_REMOTE: ${DEV_SSH_REMOTE}
    COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml
    DOCKER_VERNEMQ_ALLOW_ANONYMOUS: ${DEV_DOCKER_VERNEMQ_ALLOW_ANONYMOUS}
  script:
    - >
      deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      DOCKER_VERNEMQ_ALLOW_ANONYMOUS=${DOCKER_VERNEMQ_ALLOW_ANONYMOUS}
  environment:
    name: dev
  only:
    - branches
  except:
    - master
  when: manual

deploy-stable-branch-develop:
  stage: deploy
  variables:
    SSH_REMOTE: ${DEV_SSH_REMOTE}
    COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml
    DOCKER_VERNEMQ_ALLOW_ANONYMOUS: ${DEV_DOCKER_VERNEMQ_ALLOW_ANONYMOUS}
  script:
    - >
      deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      DOCKER_VERNEMQ_ALLOW_ANONYMOUS=${DOCKER_VERNEMQ_ALLOW_ANONYMOUS}
  environment:
    name: dev
  only:
    - master
  when: manual

deploy-supporting-branch-production:
  stage: deploy
  variables:
    SSH_REMOTE: ${PRO_SSH_REMOTE}
    COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml
    DOCKER_VERNEMQ_ALLOW_ANONYMOUS: ${PRO_DOCKER_VERNEMQ_ALLOW_ANONYMOUS}
  script:
    - >
      deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      DOCKER_VERNEMQ_ALLOW_ANONYMOUS=${DOCKER_VERNEMQ_ALLOW_ANONYMOUS}
  environment:
    name: pro
  only:
    - branches
  except:
    - master
  when: manual

deploy-stable-branch-production:
  stage: deploy
  variables:
    SSH_REMOTE: ${PRO_SSH_REMOTE}
    COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml
    DOCKER_VERNEMQ_ALLOW_ANONYMOUS: ${PRO_DOCKER_VERNEMQ_ALLOW_ANONYMOUS}
  script:
    - >
      deploy.sh IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      DOCKER_VERNEMQ_ALLOW_ANONYMOUS=${DOCKER_VERNEMQ_ALLOW_ANONYMOUS}
  environment:
    name: pro
  only:
    - master
  when: manual

deploy/.env

0 → 100644
+2 −0
Original line number Diff line number Diff line
SUBDOMAIN=mqtt
DOCKER_VERNEMQ_ALLOW_ANONYMOUS=off
+1 −0
Original line number Diff line number Diff line
version: '3.5'
+8 −0
Original line number Diff line number Diff line
version: '3.5'

services:
  vernemq:
    deploy:
      placement:
        constraints:
          - node.role == worker
+35 −0
Original line number Diff line number Diff line
version: '3.5'

services:
  vernemq:
    image: erlio/docker-vernemq:${IMAGE_TAG:-latest}
    environment:
      - DOCKER_VERNEMQ_ALLOW_ANONYMOUS
    networks:
      - traefik-net
    ports:
      - target: 1883
        published: 1883
        protocol: tcp
        mode: host
    deploy:
      mode: replicated
      replicas: 1
      labels:
        traefik.frontend.rule: Host:${SUBDOMAIN}.${PUBLIC_HOSTNAME}
        traefik.backend: vernemq
        traefik.port: '8080'
      restart_policy:
        delay: 10s
        window: 2m
      resources:
        limits:
          cpus: '1'
          memory: 128M
        reservations:
          memory: 103M

networks:
  traefik-net:
    name: ${TRAEFIK_NET_NAME:-traefik-net}
    external: true