- 前提条件
- ベースとなるDockerfileの作成
- 任意のユーザーIDのサポートを追加します。
- カスタムワークスペースイメージの構築
- カスタムワークスペースイメージを GitLab コンテナレジストリにプッシュします。
- GitLab でカスタムワークスペースイメージを使う
チュートリアル任意のユーザーIDをサポートするカスタムワークススペースイメージの作成
- GitLab 15.11 で
remote_development_feature_flag
というフラグで導入されました。デフォルトでは無効です。- GitLab.comで有効、GitLab 16.0で自己管理。
フラグ: セルフマネージドGitLabでは、デフォルトでこの機能が利用可能です。この機能を隠すには、管理者がremote_development_feature_flag
という機能フラグを無効にします。GitLab.comでは、この機能は利用可能です。この機能はまだ本番環境では使用できません。
このチュートリアルでは、任意のユーザーIDをサポートするカスタムワークススペースイメージの作成方法を学びます。このカスタムイメージをGitLabで作成したワークスペースで使用することができます。
任意のユーザー ID をサポートするカスタムワークスペースイメージを作成するには、次のようにします:
- ベースとなるDockerfileを作成します。
- 任意のユーザーIDのサポートを追加。
- カスタム・ワークスペース・イメージの構築。
- カスタムワークスペースイメージをGitLabコンテナレジストリにプッシュします。
- GitLabでカスタムワークスペースイメージを使用します。
前提条件
- コンテナイメージを作成し、GitLabコンテナレジストリにプッシュする権限を持つGitLabアカウント。
- Dockerのインストール
ベースとなるDockerfileの作成
コンテナイメージのベースとなるDockerfileを作成するために、Docker HubのPython3.11-slim-bullseye
イメージを使ってみましょう:
FROM python:3.11-slim-bullseye
次に、このベースイメージを変更します。
任意のユーザーIDのサポートを追加します。
ベース画像に任意のユーザーIDのサポートを追加するには、次のようにします:
-
5001
のユーザーIDを持つ新しいgitlab-workspaces
ユーザーを追加します。 - 必要なディレクトリ権限を設定します。
RUN useradd -l -u 5001 -G sudo -md /home/gitlab-workspaces -s /bin/bash -p gitlab-workspaces gitlab-workspaces
ENV HOME=/home/gitlab-workspaces
WORKDIR $HOME
RUN mkdir -p /home/gitlab-workspaces && chgrp -R 0 /home && chmod -R g=u /etc/passwd /etc/group /home
USER 5001
任意のユーザーIDをサポートするようになったので、いよいよカスタムワークスペースイメージを構築します。
カスタムワークスペースイメージの構築
カスタム・ワークスペース・イメージを構築するには、以下のコマンドを実行します:
docker build -t my-gitlab-workspace .
ビルドが完了したら、ローカルでイメージをテストできます:
docker run -ti my-gitlab-workspace sh
gitlab-workspaces
ユーザーとしてコマンドを実行できるはずです。
カスタムワークスペースイメージを GitLab コンテナレジストリにプッシュします。
カスタムワークスペースイメージを GitLab コンテナレジストリにプッシュします:
-
GitLab アカウントにサインインします:
docker login registry.gitlab.com
-
GitLabコンテナレジストリURLを画像にタグ付けします:
docker tag my-gitlab-workspace registry.gitlab.com/your-namespace/my-gitlab-workspace:latest
-
GitLabコンテナレジストリにイメージをプッシュします:
docker push registry.gitlab.com/your-namespace/my-gitlab-workspace:latest
カスタムワークスペースイメージをGitLabコンテナレジストリにプッシュしたら、そのイメージをGitLabで使うことができます。
GitLab でカスタムワークスペースイメージを使う
GitLabでカスタムワークスペースイメージを使うには、プロジェクトの.devfile.yaml
、コンテナイメージを更新します:
schemaVersion: 2.2.0
components:
- name: tooling-container
attributes:
gl/inject-editor: true
container:
image: registry.gitlab.com/your-namespace/my-gitlab-workspace:latest
これで準備完了です!これで、GitLabで作成したワークスペースでこのカスタムイメージを使うことができます。