リポジトリとci/cdにGitlabを使用しています。現在、ビルド段階からDockerイメージを作成するパイプラインを設定しようとしています。私が見たすべての例には、画像の簡単な名前が付いています。ブランチが使用されます(マスター)
私の質問は、リポジトリ内の現在のタグに基づいて画像にタグを付けるかどうかです。これを行うにはどうすればよいですか? Gitlabランナー変数を使用できると思いますが、表示されません
Gitlab CI には事前定義された変数がたくさんあります。 CI_COMMIT_TAG
をお探しだと思います。
したがって、次のように使用できます。
docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
したがって、画像はregistry.example.com/group/project:tag
のようになります。
シェルコマンドはまだ使用できません.gitlab-ci.yml
内の変数を使用して、 現在のタグを取得 のビルドスクリプトを編集し、そのスクリプト内でイメージをビルドできます。
プロジェクトのルートにある両方のファイル:
build.sh
:
#!/bin/sh
IMAGE="$CI_REGISTRY/$CI_PROJECT_PATH:$CI_BUILD_REF_NAME-$(git describe --abbrev=0 --tags)"
docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
docker build --pull -t $IMAGE .
docker Push $IMAGE
.gitlab-ci.yml
:
image: docker:latest
services:
- docker:dind
stages:
- release
release:
stage: release
script:
- apk update && apk add git
- ./build.sh