stages: - build-1 - build-2 - build-3 variables: HARBOR_REGISTRY: harbor-in-k3s.cheverjohn.me HARBOR_PROJECT: iloom DOCKER_TLS_CERTDIR: "/certs" DOCKER_HOST: tcp://localhost:2376 DOCKER_TLS_VERIFY: "1" DOCKER_CERT_PATH: /certs/client .build-template: &build-template image: docker:27 services: - docker:27-dind retry: 2 before_script: - until docker info >/dev/null 2>&1; do echo "Waiting for Docker daemon..."; sleep 2; done - echo "$HARBOR_PASSWORD" | docker login $HARBOR_REGISTRY -u "$HARBOR_USER" --password-stdin script: - | if [ -n "$CI_COMMIT_TAG" ]; then TAG="$CI_COMMIT_TAG" else TAG="main-${CI_COMMIT_SHORT_SHA}" fi - docker build -t $HARBOR_REGISTRY/$HARBOR_PROJECT/$IMAGE_NAME:$TAG -f $DOCKERFILE_PATH . - docker push $HARBOR_REGISTRY/$HARBOR_PROJECT/$IMAGE_NAME:$TAG rules: - if: $CI_COMMIT_BRANCH == "main" - if: $CI_COMMIT_TAG =~ /^v/ build-gateway: <<: *build-template stage: build-1 variables: IMAGE_NAME: iloom-gateway DOCKERFILE_PATH: gateway/Dockerfile build-auth-service: <<: *build-template stage: build-1 variables: IMAGE_NAME: iloom-auth-service DOCKERFILE_PATH: auth-service/Dockerfile build-purchaser-service: <<: *build-template stage: build-2 variables: IMAGE_NAME: iloom-purchaser-service DOCKERFILE_PATH: purchaser-service/Dockerfile build-textile-service: <<: *build-template stage: build-2 variables: IMAGE_NAME: iloom-textile-service DOCKERFILE_PATH: textile-service/Dockerfile build-washing-service: <<: *build-template stage: build-3 variables: IMAGE_NAME: iloom-washing-service DOCKERFILE_PATH: washing-service/Dockerfile