stages: - build # Builds the production image (see Dockerfile: bun build → dist/, served by # `bun src/index.ts`) and pushes it to this project's GitLab Container Registry. # # docker run -p 3000:3000 -v whisper-data:/app/data $CI_REGISTRY_IMAGE:latest build-image: stage: build image: docker:27 services: - docker:27-dind variables: DOCKER_TLS_CERTDIR: "/certs" IMAGE_SHA: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA IMAGE_LATEST: $CI_REGISTRY_IMAGE:latest before_script: - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY" script: - docker build --pull -t "$IMAGE_SHA" . - docker push "$IMAGE_SHA" # Only the default branch moves the :latest tag. - | if [ "$CI_COMMIT_BRANCH" = "$CI_DEFAULT_BRANCH" ]; then docker tag "$IMAGE_SHA" "$IMAGE_LATEST" docker push "$IMAGE_LATEST" fi rules: - if: $CI_COMMIT_BRANCH