web-dev-qa-db-ja.com

gitリポジトリからのタグでDockerイメージにタグを付ける

リポジトリとci/cdにGitlabを使用しています。現在、ビルド段階からDockerイメージを作成するパイプラインを設定しようとしています。私が見たすべての例には、画像の簡単な名前が付いています。ブランチが使用されます(マスター)

私の質問は、リポジトリ内の現在のタグに基づいて画像にタグを付けるかどうかです。これを行うにはどうすればよいですか? Gitlabランナー変数を使用できると思いますが、表示されません

7
Noel

Gitlab CI には事前定義された変数がたくさんあります。 CI_COMMIT_TAGをお探しだと思います。

したがって、次のように使用できます。

docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG

したがって、画像はregistry.example.com/group/project:tagのようになります。

7
Sascha Frinken

シェルコマンドはまだ使用できません.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
3
Bertrand Martel