Качественная настройка GitLab CI/CD для server
Во многих компаниях ci/cd оставляют на второе место и основное внимание уделяют написанию кода. Я считаю что в современной разработке ci/cd это неотъемлемая часть кода.
stack.yaml
x-environment: &default-environment
KAFKA_CLIENT_ID: $KAFKA_CLIENT_ID
KAFKA_BROKER: kafka-1:9092,kafka-2:9092,kafka-3:9092
services:
gql:
image: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
command: ["node", "dist/apps/gql/main.js"]
init: true
environment:
<<: *default-environment
deploy:
restart_policy:
condition: any
delay: 5s
max_attempts: 1
window: 60s
replicas: 1
rest:
image: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
command: ["node", "dist/apps/rest/main.js"]
ports:
- 3004:3000
init: true
environment:
<<: *default-environment
deploy:
restart_policy:
condition: any
delay: 5s
max_attempts: 1
window: 60s
replicas: 1
srv:
image: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
command: ["node", "dist/apps/srv/main.js"]
init: true
environment:
<<: *default-environment
deploy:
restart_policy:
condition: any
delay: 5s
max_attempts: 1
window: 60s
replicas: 1
cron:
image: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
command: ["crond", "-f", "-l", "8", "-d", "8", "-L", "/dev/stdout"]
user: root
init: true
environment:
<<: *default-environment
deploy:
restart_policy:
condition: any
delay: 5s
max_attempts: 1
window: 60s
replicas: 1
networks:
default:
name: ${NETWORKS_NAME}
external: true