튜토리얼: 임의 사용자 ID를 지원하는 사용자 정의 워크스페이스 이미지 만들기
GitLab v19.2이 튜토리얼에서는 프로젝트 요구 사항을 충족하는 사용자 정의 워크스페이스 이미지를 만드는 방법을 안내합니다. 임의 사용자 ID를 지원하는 사용자 정의 워크스페이스 이미지를 만들려면: GitLab Container Registry의 워크스페이스 기본 이미지(registry.gitlab.com/gitlab-org/gitlab-build-images:workspaces-base)를 시작점으로 사용하는 Dockerfile을 만듭니다:
이 튜토리얼에서는 프로젝트 요구 사항을 충족하는 사용자 정의 워크스페이스 이미지를 만드는 방법을 안내합니다. 완료되면 GitLab에서 만드는 모든 워크스페이스에서 이 사용자 정의 이미지를 사용할 수 있습니다.
임의 사용자 ID를 지원하는 사용자 정의 워크스페이스 이미지를 만들려면:
- Dockerfile 만들기.
- 사용자 정의 워크스페이스 이미지 빌드.
- 사용자 정의 워크스페이스 이미지를 GitLab 컨테이너 레지스트리에 푸시.
- GitLab에서 사용자 정의 워크스페이스 이미지 사용.
시작하기 전에#
다음이 필요합니다:
- GitLab 컨테이너 레지스트리에 컨테이너 이미지를 만들고 푸시할 권한이 있는 GitLab 계정.
- 로컬 컴퓨터에 설치된 Docker.
Dockerfile 만들기#
GitLab Container Registry의 워크스페이스 기본 이미지(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.com -
GitLab 컨테이너 레지스트리 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에서 만드는 모든 워크스페이스에서 이 사용자 정의 이미지를 사용할 수 있습니다.