Commit ffccd3c4 authored by Noel Alonso's avatar Noel Alonso
Browse files

Actualiza y completa config de docker

Especifica fase de build en docker-compose
Añade valores por defecto en Dockerfile y .env
Actualiza docker-compose añadiendo variables y modificando estructura
Añade SPRING_PROFILES_ACTIVE en docker-compose
parent a02e1343
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
ARG PARENT_IMAGE_NAME
ARG PARENT_IMAGE_TAG
ARG PARENT_IMAGE_NAME=registry.gitlab.com/redmic-project/docker/redmic-server
ARG PARENT_IMAGE_TAG=latest

FROM ${PARENT_IMAGE_NAME}:${PARENT_IMAGE_TAG}

COPY /dist/*.jar ./

ARG MICROSERVICE_NAME=api
ENV MICROSERVICE_NAME=${MICROSERVICE_NAME}

ARG MICROSERVICE_PORT=8080
ENV MICROSERVICE_PORT=${MICROSERVICE_PORT}

EXPOSE ${MICROSERVICE_PORT}
+3 −0
Original line number Diff line number Diff line
PARENT_IMAGE_NAME=registry.gitlab.com/redmic-project/docker/redmic-server
PARENT_IMAGE_TAG=latest

MICROSERVICE_NAME=api
MICROSERVICE_PORT=8080
+11 −9
Original line number Diff line number Diff line
@@ -2,21 +2,23 @@ version: '3.5'

services:
  api:
    ports:
      - target: ${MICROSERVICE_PORT}
        published: ${MICROSERVICE_PORT}
        mode: host
    environment:
      SPRING_PROFILES_ACTIVE: pre
    deploy:
      placement:
        constraints:
          - node.hostname == ${PLACEMENT_CONSTRAINTS_NODE_HOSTNAME:-hostname}
      resources:
        limits:
          cpus: '1'
          memory: 1G
          cpus: '${RESOURCES_LIMITS_CPUS:-1}'
          memory: ${RESOURCES_LIMITS_MEMORY:-1G}
        reservations:
          memory: 820M
          cpus: '${RESOURCES_RESERVATIONS_CPUS:-0.001}'
          memory: ${RESOURCES_RESERVATIONS_MEMORY:-820M}

volumes:
  mediastorage-private-vol:
    name: mediastorage-private-vol
    name: ${MEDIASTORAGE_PRIVATE_VOL_NAME:-mediastorage-private-vol}

  mediastorage-public-vol:
    name: mediastorage-public-vol
    name: ${MEDIASTORAGE_PUBLIC_VOL_NAME:-mediastorage-public-vol}
+8 −8
Original line number Diff line number Diff line
@@ -2,26 +2,26 @@ version: '3.5'

services:
  api:
    environment:
      SPRING_PROFILES_ACTIVE: prod
    deploy:
      placement:
        constraints:
          - node.role == worker
      resources:
        limits:
          cpus: '2'
          memory: 2G
          cpus: '${RESOURCES_LIMITS_CPUS:-2}'
          memory: ${RESOURCES_LIMITS_MEMORY:-2G}
        reservations:
          memory: 1640M
          cpus: '${RESOURCES_RESERVATIONS_CPUS:-0.01}'
          memory: ${RESOURCES_RESERVATIONS_MEMORY:-1640M}

volumes:
  mediastorage-private-vol:
    name: mediastorage-private-vol
    name: ${MEDIASTORAGE_PRIVATE_VOL_NAME:-mediastorage-private-vol}
    driver: "cloudstor:aws"
    driver_opts:
      backing: shared

  mediastorage-public-vol:
    name: mediastorage-public-vol
    name: ${MEDIASTORAGE_PUBLIC_VOL_NAME:-mediastorage-public-vol}
    driver: "cloudstor:aws"
    driver_opts:
      backing: shared
+41 −24
Original line number Diff line number Diff line
@@ -2,36 +2,44 @@ version: '3.5'

services:
  api:
    image: ${IMAGE_NAME}:${IMAGE_TAG:-latest}
    image: ${IMAGE_NAME:-registry.gitlab.com/redmic-project/server/api}:${IMAGE_TAG:-latest}
    build:
      context: ..
      dockerfile: ${DOCKERFILE:-Dockerfile}
      args:
        PARENT_IMAGE_NAME:
        PARENT_IMAGE_TAG:
        MICROSERVICE_NAME:
        MICROSERVICE_PORT:
    environment:
      - MICROSERVICE_NAME
      - MICROSERVICE_PORT
      - SPRING_PROFILES_ACTIVE
      - SPRING_DATASOURCE_USERNAME
      - SPRING_DATASOURCE_PASSWORD
      - OAUTH_CLIENT_ID
      - OAUTH_CLIENT_SECRET
      - AWS_ACCESS_KEY
      - AWS_SECRET_KEY
      - ELASTIC_XPACKSECURITYUSER
      - JAVA_OPTS=-XX:MaxRAMFraction=2
      MICROSERVICE_NAME:
      MICROSERVICE_PORT:
      SPRING_DATASOURCE_USERNAME:
      SPRING_DATASOURCE_PASSWORD:
      SPRING_DATASOURCE_URL:
      OAUTH_CLIENT_ID:
      OAUTH_CLIENT_SECRET:
      AWS_ACCESS_KEY:
      AWS_SECRET_KEY:
      ELASTIC_XPACKSECURITYUSER:
      JAVA_OPTS: -XX:MaxRAMFraction=2
    networks:
      - elastic-net
      - postgres-net
      - redmic-net
      - traefik-net
      elastic-net:
      postgres-net:
      redmic-net:
      traefik-net:
    volumes:
      - mediastorage-private-vol:/data/MEDIA_STORAGE
      - mediastorage-public-vol:/data/PUBLIC_MEDIA_STORAGE
    healthcheck:
      test: wget --spider -q http://localhost:${MICROSERVICE_PORT}/${MICROSERVICE_NAME}/actuator/health
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 4m
      interval: ${HEALTHCHECK_INTERVAL:-30s}
      timeout: ${HEALTHCHECK_TIMEOUT:-10s}
      retries: ${HEALTHCHECK_RETRIES:-10}
      start_period: ${HEALTHCHECK_START_PERIOD:-5m}
    deploy:
      mode: replicated
      replicas: 1
      replicas: ${REPLICAS:-1}
      labels:
        traefik.sitemap.frontend.rule: Host:${PUBLIC_HOSTNAME};PathPrefix:/sitemap;AddPrefix:/${MICROSERVICE_NAME}
        traefik.microservice.frontend.rule: Host:${PUBLIC_HOSTNAME};PathPrefix:/${MICROSERVICE_NAME}
@@ -41,18 +49,27 @@ services:
        traefik.backend: ${MICROSERVICE_NAME}
        traefik.port: "${MICROSERVICE_PORT}"
      restart_policy:
        delay: 1m
        window: 3m
        delay: ${RESTART_DELAY:-1m}
      update_config:
        delay: ${UPDATE_DELAY:-2m}

networks:
  elastic-net:
    name: ${ELASTIC_NET_NAME:-elastic-net}
    driver: ${ELASTIC_NET_DRIVER:-overlay}
    external: true

  postgres-net:
    name: ${POSTGRES_NET_NAME:-postgres-net}
    driver: ${POSTGRES_NET_DRIVER:-overlay}
    external: true

  redmic-net:
    name: ${REDMIC_NET_NAME:-redmic-net}
    driver: ${REDMIC_NET_DRIVER:-overlay}
    external: true

  traefik-net:
    name: ${TRAEFIK_NET_NAME:-traefik-net}
    driver: ${TRAEFIK_NET_DRIVER:-overlay}
    external: true