チュートリアル: 任意のユーザーIDをサポートするカスタムワークスペースイメージを作成する
このチュートリアルでは、プロジェクトのニーズを満たすカスタムワークスペースイメージを作成する方法を説明します。完了すると、GitLabで作成する任意のワークスペースでこのカスタムイメージを使用できます。
任意のユーザーIDをサポートするカスタムワークスペースイメージを作成するには:
- Dockerfileを作成する。
- カスタムワークスペースイメージをビルドする。
- カスタムワークスペースイメージをGitLabコンテナレジストリにプッシュする。
- GitLabでカスタムワークスペースイメージを使用する。
はじめる前
以下が必要です:
- GitLabコンテナレジストリにコンテナイメージを作成してプッシュする権限を持つGitLabアカウント。
- Dockerがローカルマシンにインストールされていること。
Dockerfileを作成
GitLabコンテナレジストリからワークスペースベースイメージ(registry.gitlab.com/gitlab-org/gitlab-build-images:workspaces-base)を起点とするDockerfileを作成します:
FROM registry.gitlab.com/gitlab-org/gitlab-build-images:workspaces-base
# Install additional tools your project needs
RUN sudo apt-get update && \
sudo apt-get install -y tree && \
sudo rm -rf /var/lib/apt/lists/*
# Install project-specific tools using mise
# For example, install Node.js version 20
RUN mise install node@20 && \
mise use node@20
# Install global packages
RUN npm install -g @angular/cli
# Set up your project environment
ENV NODE_ENV=development
# Create project directories
RUN mkdir -p /home/gitlab-workspaces/projectsこれらの手順は、プロジェクトの特定の要件に基づいてカスタマイズしてください。次に、カスタムワークスペースイメージをビルドします。
カスタムワークスペースイメージをビルドする
Dockerfileが完成したら、カスタムワークスペースイメージをビルドする準備が完了です:
Dockerfileを作成したディレクトリで、次のコマンドを実行します:
docker build -t my-gitlab-workspace .これは、インターネット接続とシステムの速度によっては、数分かかる場合があります。
ビルドプロセスが完了したら、イメージをローカルでテストします:
docker run -ti my-gitlab-workspace sh
gitlab-workspacesユーザーとしてコマンドを実行する権限が付与されているはずです。完璧です。イメージがローカルで動作しています。次に、GitLabで使用できるようにします。
カスタムワークスペースイメージをGitLabコンテナレジストリにプッシュする
プロジェクトで使用するために、カスタムワークスペースイメージをGitLabコンテナレジストリにプッシュします:
GitLabアカウントにサインインする:
docker login registry.gitlab.comGitLabコンテナレジストリのURLでイメージにタグ付けします:
docker tag my-gitlab-workspace registry.gitlab.com/your-namespace/my-gitlab-workspace:latestyour-namespaceは、実際のGitLabネームスペースに置き換えてください。イメージをGitLabコンテナレジストリにプッシュします:
docker push registry.gitlab.com/your-namespace/my-gitlab-workspace:latestこのアップロードは、インターネット接続速度によっては、しばらく時間がかかる場合があります。
よくできました。これで、カスタムワークスペースイメージは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:latestyour-namespaceは、実際のGitLabネームスペースに置き換えてください。
おつかれさまでした。任意のユーザーIDをサポートするカスタムワークスペースイメージの作成と構成が正常に完了しました。このカスタムイメージは、GitLabで作成する任意のワークスペースで使用できるようになりました。