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: - name: docker:27-dind command: ["--dns", "10.43.0.10", "--dns", "223.5.5.5"] retry: 2 before_script: - until docker info >/dev/null 2>&1; do echo "Waiting for Docker daemon..."; sleep 2; done - echo "${HARBOR_PASS}" | docker login ${HARBOR_REGISTRY} -u "${HARBOR_USER}" --password-stdin script: - | if [ -n "$CI_COMMIT_TAG" ]; then TAG="$CI_COMMIT_TAG" elif [ "$CI_COMMIT_BRANCH" = "main" ]; then TAG="main-${CI_COMMIT_SHORT_SHA}" else TAG="feat-${CI_COMMIT_SHORT_SHA}" fi - docker build --network host -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/ - if: $CI_PIPELINE_SOURCE == "merge_request_event" - if: $CI_COMMIT_BRANCH =~ /^feat\// 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