Commit c8c002e2 authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Actualiza imagen Docker, CI y despliegue

Fija imagen base a versión concreta.
Pone al día las tareas de CI y reaprovecha variables.
Unifica ficheros docker-compose y corrige detalles.
parent 53017d44
Loading
Loading
Loading
Loading
+38 −23
Original line number Diff line number Diff line
@@ -7,6 +7,11 @@ image: docker:stable

variables:
  DOCKER_DRIVER: overlay2
  STACK: ${CI_PROJECT_NAME}
  SERVICES_TO_CHECK: ${CI_PROJECT_NAME}_${CI_PROJECT_NAME}
  IMAGE_NAME: ${CI_REGISTRY_IMAGE}
  IMAGE_TAG: ${CI_COMMIT_SHA}
  STATIC_SUBDOMAIN: static

services:
  - docker:dind
@@ -64,68 +69,78 @@ container-scanning:
  artifacts:
    paths: [gl-sast-container-report.json]

deploy-dev:
deploy-supporting-branch-develop:
  stage: deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy:latest
  variables:
    SSH_REMOTE: ${DEV_SSH_REMOTE}
    STACK: ${CI_PROJECT_NAME}
    SERVICES_TO_CHECK: ${CI_PROJECT_NAME}_${CI_PROJECT_NAME}
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml
    PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME}
  script:
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      EXTERNAL_PORT=${EXTERNAL_PORT} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
      STATIC_SUBDOMAIN=${STATIC_SUBDOMAIN} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
  environment:
    name: dev
    url: https://${STATIC_SUBDOMAIN}.${DEV_PUBLIC_HOSTNAME}
  only:
    - dev
    - branches
  except:
    - master
  when: manual

deploy-supporting-branch:
deploy-stable-branch-develop:
  stage: deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy:latest
  variables:
    SSH_REMOTE: ${DEV_SSH_REMOTE}
    STACK: ${CI_PROJECT_NAME}
    SERVICES_TO_CHECK: ${CI_PROJECT_NAME}_${CI_PROJECT_NAME}
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml
    PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME}
  script:
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      EXTERNAL_PORT=${EXTERNAL_PORT} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
      STATIC_SUBDOMAIN=${STATIC_SUBDOMAIN} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
  environment:
    name: dev
    url: https://${STATIC_SUBDOMAIN}.${DEV_PUBLIC_HOSTNAME}
  only:
    - master
  when: manual

deploy-supporting-branch-production:
  stage: deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy:latest
  variables:
    SSH_REMOTE: ${PRO_SSH_REMOTE}
    COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml
    PUBLIC_HOSTNAME: ${PRO_PUBLIC_HOSTNAME}
  script:
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      STATIC_SUBDOMAIN=${STATIC_SUBDOMAIN} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
  environment:
    name: pro
    url: https://${STATIC_SUBDOMAIN}.${PRO_PUBLIC_HOSTNAME}
  only:
    - branches
  except:
    - master
    - dev
  when: manual

deploy-pro:
deploy-stable-branch-production:
  stage: deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy:latest
  variables:
    SSH_REMOTE: ${PRO_SSH_REMOTE}
    STACK: ${CI_PROJECT_NAME}
    SERVICES_TO_CHECK: ${CI_PROJECT_NAME}_${CI_PROJECT_NAME}
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml
    PUBLIC_HOSTNAME: ${PRO_PUBLIC_HOSTNAME}
  script:
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
      STATIC_SUBDOMAIN=${STATIC_SUBDOMAIN} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
  environment:
    name: pro
    url: https://${STATIC_SUBDOMAIN}.${PRO_PUBLIC_HOSTNAME}
  only:
    - master
  when: manual
+1 −1
Original line number Diff line number Diff line
FROM nginx:alpine
FROM nginx:1.15-alpine

LABEL maintainer="info@redmic.es"

+0 −1
Original line number Diff line number Diff line
INTERNAL_PORT=80
EXTERNAL_PORT=8099
PUBLIC_HOSTNAME=redmic.es
STATIC_SUBDOMAIN=static
+0 −27
Original line number Diff line number Diff line
version: '3.5'

services:
  static-pages:
    ports:
      - target: ${INTERNAL_PORT}
        published: ${EXTERNAL_PORT}
        mode: host
    deploy:
      mode: global
      labels:
        traefik.docker.network: traefik-net
        traefik.static.port: "${INTERNAL_PORT}"
        traefik.static.frontend.rule: Host:${STATIC_SUBDOMAIN}.${PUBLIC_HOSTNAME}
        traefik.static.backend: static-pages
        traefik.web-error-handle.port: "${INTERNAL_PORT}"
        traefik.web-error-handle.frontend.rule: Host:${PUBLIC_HOSTNAME};ReplacePathRegex:^.*?(resources/[^/]+\\.\\w+)?$$ /maintenance/$$1
        traefik.web-error-handle.frontend.priority: "1"
        traefik.web-error-handle.backend: static-pages
      restart_policy:
        delay: 30s
        window: 1m
      resources:
        limits:
          cpus: '0.1'
          memory: 64M
        reservations:
          memory: 52M
+0 −23
Original line number Diff line number Diff line
version: '3.5'

services:
  static-pages:
    deploy:
      mode: global
      labels:
        traefik.docker.network: traefik-net
        traefik.static.port: "${INTERNAL_PORT}"
        traefik.static.frontend.rule: Host:${STATIC_SUBDOMAIN}.${PUBLIC_HOSTNAME}
        traefik.static.backend: static-pages
        traefik.web-error-handle.port: "${INTERNAL_PORT}"
        traefik.web-error-handle.frontend.rule: Host:${PUBLIC_HOSTNAME};ReplacePathRegex:^.*?(resources/[^/]+\\.\\w+)?$$ /maintenance/$$1
        traefik.web-error-handle.frontend.priority: "1"
        traefik.web-error-handle.backend: static-pages
      restart_policy:
        delay: 30s
        window: 1m
      resources:
        limits:
          cpus: '0.1'
          memory: 64M
        reservations:
          memory: 52M
Loading