チュートリアル: 任意のユーザー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で作成する任意のワークスペースで使用できます。