From a5ef81d65133671fea65073c154845f580f7e8cf Mon Sep 17 00:00:00 2001 From: Egor Matveev Date: Wed, 2 Mar 2022 21:02:12 +0300 Subject: [PATCH] infra --- .gitlab-ci.yml | 3 +- docker-compose-deploy.yaml | 6 +- docker-compose.yaml | 114 +++++++++++++++++++++++++++++++++++++ 3 files changed, 118 insertions(+), 5 deletions(-) create mode 100644 docker-compose.yaml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a295ead..fd05a70 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,8 +22,7 @@ build: # - docker image rm mathwave/sprint-repo:sprint # - docker pull mathwave/sprint-repo:sprint script: - - docker-compose up -d -f docker-compose-infra.yaml - - docker stack deploy -c ./docker-compose-deploy.yaml sprint + - docker-compose up -d deploy-dev: extends: diff --git a/docker-compose-deploy.yaml b/docker-compose-deploy.yaml index 59f8f9c..2ca2305 100644 --- a/docker-compose-deploy.yaml +++ b/docker-compose-deploy.yaml @@ -13,12 +13,12 @@ services: image: mathwave/sprint-repo:sprint restart: always environment: - PORT: $PORT + PORT: 80 HOST: $HOST debug: "false" - command: ./manage.py runserver 0.0.0.0:$PORT --noreload + command: ./manage.py runserver 0.0.0.0:80 --noreload ports: - - "${PORT}:${PORT}" + - "80:80" deploy: mode: replicated diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..0f51666 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,114 @@ +version: "3" + + +services: + + postgres: + restart: always + build: + context: . + dockerfile: dockerfiles/postgres/Dockerfile + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: $POSTGRES_PASSWORD + POSTGRES_DB: sprint + volumes: + - /sprint-data/postgres-data:/var/lib/postgresql/data + ports: + - "5432:5432" + + migrations: + image: mathwave/sprint-repo:sprint + command: ./manage.py migrate + depends_on: + - postgres + + web: + image: mathwave/sprint-repo:sprint + restart: always + environment: + PORT: $PORT + HOST: $HOST + debug: "false" + command: ./manage.py runserver 0.0.0.0:$PORT --noreload + ports: + - "${PORT}:${PORT}" + depends_on: + - migrations + - rabbitmq + - storage + + storage: + restart: always + image: mathwave/sprint-repo:sprint + command: ./manage.py storage + ports: + - "5555:5555" + volumes: + - /sprint-data/data:/usr/src/app/data + + bot: + image: mathwave/sprint-repo:sprint + restart: always + environment: + HOST: $HOST + command: ./manage.py bot + depends_on: + - web + + loop: + image: mathwave/sprint-repo:sprint + restart: always + environment: + HOST: $HOST + command: ./manage.py loop + depends_on: + - web + + rabbitmq: + restart: always + build: + context: . + dockerfile: dockerfiles/rabbitmq/Dockerfile + ports: + - "15672:15672" + - "5672:5672" + + worker: + restart: always + image: mathwave/sprint-repo:sprint + privileged: true + command: ./manage.py receive + environment: + SOLUTIONS_ROOT_EXTERNAL: "${SOLUTIONS_ROOT_EXTERNAL}" + HOST: $HOST + depends_on: + - web + - rabbitmq + - migrations + - storage + volumes: + - /sprint-data/solutions:/usr/src/app/solutions + - /var/run/docker.sock:/var/run/docker.sock + + apply-languages: + image: mathwave/sprint-repo:sprint + command: ./manage.py apply_languages + depends_on: + - migrations + - web + - postgres + + notify-admin: + image: mathwave/sprint-repo:sprint + command: ./manage.py success_deploy + depends_on: + - migrations + - web + - worker + - storage + - rabbitmq + - bot + - postgres + - apply-languages + - loop