GitLab CI/CD - ハンズオンラボ: GitLab コンテナレジストリの操作
所要時間の目安: 15〜20分
目標
Docker は、開発者がコンテナアプリケーションをビルドするために広く使用されるプラットフォームです。CI/CD のビルドプロセスの一部として Docker コンテナを生成することができます。このラボでは、プロジェクトの Dockerfile を定義し、.gitlab-ci.yml ファイルに統合する方法を学びます。
タスク A: Dockerfile の追加
前のラボで作成した CICD Demo プロジェクトを開きます。
+ > This directory > New file を選択して、CICD Demo プロジェクトに新しいファイルを追加します。
Filename フィールドに
Dockerfileと入力します。新しいファイルの本文に以下の内容を貼り付けます。
FROM golang:1.11-alpine as builder WORKDIR /usr/build ADD main.go . RUN go build -o app . FROM alpine:latest WORKDIR /usr/src COPY --from=builder /usr/build/app . EXPOSE 8080 CMD ["/usr/src/app"]Commit message フィールドに
Add Dockerfileと入力し、Target Branch がmainに設定されていることを確認して、Commit changes をクリックします。
タスク B: build image ジョブの定義
左のナビゲーションバーで Code > Repository をクリックします。
.gitlab-ci.ymlファイルを開き、Edit > Edit single file をクリックします。ファイルの末尾に以下の新しいジョブ定義を貼り付けます。build image: stage: build image: docker:27 services: - docker:27-dind variables: IMAGE: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG:$CI_COMMIT_SHA script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build -t $IMAGE . - docker push $IMAGEDocker ベースのイメージをビルドするための代替方法があります。ランナーが Docker in Docker をサポートしていない場合は、以下の設定に示すように
kanikoなどのツールの使用を検討してください:build image: stage: build image: name: gcr.io/kaniko-project/executor:v1.14.0-debug entrypoint: [""] script: - /kaniko/executor --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/Dockerfile" --destination "${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}"Commit message フィールドに
Add "build image" job definitionと入力し、Target Branch がmainに設定されていることを確認して、Commit changes をクリックします。
タスク C: パイプラインの実行確認
Build > Pipelines に移動します。最新のパイプライン実行をクリックします。
build image ジョブのウィジェットをクリックして進行状況を確認します。ジョブが完了するまで待ちます。
左のナビゲーションペインで Deploy > Container Registry をクリックし、
build imageジョブによってアップロードされたコンテナを確認します。
ラボガイドの完了
このラボ演習が完了しました。このコースの他のラボガイドも参照できます。
ご意見・ご提案?
GitLab CI/CD のハンズオンガイド に変更を加えたい場合は、マージリクエストで変更内容を提出してください!
