diff --git a/.gitlab/ci/container-boot.gitlab-ci.yml b/.gitlab/ci/container-boot.gitlab-ci.yml index 9ef14a1..16253ac 100644 --- a/.gitlab/ci/container-boot.gitlab-ci.yml +++ b/.gitlab/ci/container-boot.gitlab-ci.yml @@ -4,9 +4,7 @@ stage: container:boot image: ghcr.io/code0-tech/build-images/reticulum-builder:177.1-ruby-3.2.2 variables: - RETICULUM_IMAGE_BASE: ghcr.io/code0-tech/reticulum/ci-builds - SAGITTARIUS_IMAGE: $RETICULUM_IMAGE_BASE/sagittarius:${CI_PIPELINE_ID}-${SAGITTARIUS_VARIANT} - AQUILA_IMAGE: $RETICULUM_IMAGE_BASE/aquila:${CI_PIPELINE_ID} + COMPOSE_FILE: support/docker-compose.yml .container:boot:sagittarius: extends: @@ -18,67 +16,31 @@ - SAGITTARIUS_VARIANT: - ce - ee - variables: - CURL_IMAGE: curlimages/curl:8.5.0 - DOCKER_ARGS: "" before_script: - - docker network create boot - - > - docker run - --detach - --name postgres - --network boot - --network-alias postgres - --env POSTGRES_USER=sagittarius - --env POSTGRES_PASSWORD=sagittarius - --env POSTGRES_DB=sagittarius_production - postgres:16.1 - - docker pull $SAGITTARIUS_IMAGE - - docker pull $CURL_IMAGE - - > - docker run - --detach - --name sagittarius - --network boot - --network-alias sagittarius - --volume $(pwd)/container/sagittarius/sagittarius.yml:/sagittarius/config/sagittarius.yml - $DOCKER_ARGS - $SAGITTARIUS_IMAGE - $SAGITTARIUS_CMD + - docker compose up postgres -d + - docker compose up sagittarius-$SAGITTARIUS_SERVICE -d - docker ps --all - - docker logs -f sagittarius & + - docker compose logs sagittarius-$SAGITTARIUS_SERVICE -f & container:boot:sagittarius:rails-web: extends: - .container:boot:sagittarius variables: - SAGITTARIUS_CMD: "" + SAGITTARIUS_SERVICE: rails-web script: - - > - docker run - --rm - --network boot - $CURL_IMAGE - curl - --fail - -sv - --retry 20 - --retry-delay 3 - --retry-connrefused - http://sagittarius:3000/health/liveness + - docker compose run curl-sagittarius-rails-web container:boot:sagittarius:grpc: extends: - .container:boot:sagittarius variables: - SAGITTARIUS_CMD: "bin/grpc_server" - DOCKER_ARGS: "--publish 50051:50051 --env SAGITTARIUS_PREPARE_DATABASE=true" + SAGITTARIUS_SERVICE: grpc before_script: - bundle install - !reference [.container:boot:sagittarius, before_script] script: - - scripts/grpc_check_health --host docker:50051 --service liveness --retries 20 - - scripts/grpc_check_health --host docker:50051 --service readiness --retries 20 + - support/grpc_check_health --host docker:50051 --service liveness --retries 20 + - support/grpc_check_health --host docker:50051 --service readiness --retries 20 container:boot:aquila: extends: @@ -90,54 +52,13 @@ container:boot:aquila: SAGITTARIUS_VARIANT: ce script: - bundle install - - docker network create boot - - > - docker run - --detach - --name postgres - --network boot - --network-alias postgres - --env POSTGRES_USER=sagittarius - --env POSTGRES_PASSWORD=sagittarius - --env POSTGRES_DB=sagittarius_production - postgres:16.1 - - > - docker run - --detach - --name nats - --network boot - --network-alias nats - nats:2.11.8 - -js - - docker pull $SAGITTARIUS_IMAGE - - docker pull $AQUILA_IMAGE - - > - docker run - --detach - --name sagittarius - --network boot - --network-alias sagittarius - --volume $(pwd)/container/sagittarius/sagittarius.yml:/sagittarius/config/sagittarius.yml - --env SAGITTARIUS_PREPARE_DATABASE=true - --publish 50051:50051 - $SAGITTARIUS_IMAGE - bin/grpc_server + - docker compose up postgres -d + - docker compose up nats -d + - docker compose up sagittarius-grpc -d - docker ps --all - - docker logs -f sagittarius & - - scripts/grpc_check_health --host docker:50051 --service readiness --retries 20 - - > - docker run - --detach - --name aquila - --network boot - --network-alias aquila - --env NATS_URL=nats://nats:4222 - --env MODE=dynamic - --env WITH_HEALTH_SERVICE=true - --env GRPC_HOST=0.0.0.0 - --env SAGITTARIUS_URL=http://sagittarius:50051 - --publish 8081:8081 - $AQUILA_IMAGE - - docker logs -f aquila & - - scripts/grpc_check_health --host docker:8081 --service liveness --retries 20 - - scripts/grpc_check_health --host docker:8081 --service readiness --retries 20 + - docker compose logs sagittarius-grpc -f & + - support/grpc_check_health --host docker:50051 --service readiness --retries 20 + - docker compose up aquila -d + - docker compose logs aquila -f & + - support/grpc_check_health --host docker:8081 --service liveness --retries 20 + - support/grpc_check_health --host docker:8081 --service readiness --retries 20 diff --git a/.gitlab/ci/container-build.gitlab-ci.yml b/.gitlab/ci/container-build.gitlab-ci.yml index 188926d..9ebe9c3 100644 --- a/.gitlab/ci/container-build.gitlab-ci.yml +++ b/.gitlab/ci/container-build.gitlab-ci.yml @@ -4,7 +4,7 @@ image: ghcr.io/code0-tech/build-images/reticulum-builder:177.1-ruby-3.2.2 stage: container script: - - source scripts/helpers.sh + - source support/helpers.sh - docker_login - 'image=$(echo "$CI_JOB_NAME" | cut -d : -f 2)' - '[ -z "$NEED_PROJECT_DOWNLOAD" ] || download_project $image' diff --git a/support/docker-compose.yml b/support/docker-compose.yml new file mode 100644 index 0000000..c80ff7a --- /dev/null +++ b/support/docker-compose.yml @@ -0,0 +1,67 @@ +services: + postgres: + image: postgres:16.1 + networks: + - boot + environment: + POSTGRES_USER: sagittarius + POSTGRES_PASSWORD: sagittarius + POSTGRES_DB: sagittarius_production + + sagittarius-rails-web: + image: ghcr.io/code0-tech/reticulum/ci-builds/sagittarius:${CI_PIPELINE_ID}-${SAGITTARIUS_VARIANT} + networks: + - boot + volumes: + - ../container/sagittarius/sagittarius.yml:/sagittarius/config/sagittarius.yml + + curl-sagittarius-rails-web: + image: curlimages/curl:8.5.0 + networks: + - boot + command: + - curl + - --fail + - -sv + - --retry + - "20" + - --retry-delay + - "3" + - --retry-connrefused + - http://sagittarius-rails-web:3000/health/liveness + + sagittarius-grpc: + image: ghcr.io/code0-tech/reticulum/ci-builds/sagittarius:${CI_PIPELINE_ID}-${SAGITTARIUS_VARIANT} + networks: + - boot + volumes: + - ../container/sagittarius/sagittarius.yml:/sagittarius/config/sagittarius.yml + command: + - bin/grpc_server + environment: + SAGITTARIUS_PREPARE_DATABASE: "true" + ports: + - "50051:50051" + + nats: + image: nats:2.11.8 + networks: + - boot + command: + - -js + + aquila: + image: ghcr.io/code0-tech/reticulum/ci-builds/aquila:${CI_PIPELINE_ID} + networks: + - boot + environment: + NATS_URL: nats://nats:4222 + MODE: dynamic + WITH_HEALTH_SERVICE: "true" + GRPC_HOST: 0.0.0.0 + SAGITTARIUS_URL: http://sagittarius-grpc:50051 + ports: + - "8081:8081" + +networks: + boot: diff --git a/scripts/download_projects b/support/download_projects similarity index 100% rename from scripts/download_projects rename to support/download_projects diff --git a/scripts/grpc_check_health b/support/grpc_check_health similarity index 100% rename from scripts/grpc_check_health rename to support/grpc_check_health diff --git a/scripts/helpers.sh b/support/helpers.sh similarity index 100% rename from scripts/helpers.sh rename to support/helpers.sh