튜토리얼: 임의 사용자 ID를 지원하는 사용자 정의 워크스페이스 이미지 만들기
이 튜토리얼에서는 프로젝트 요구 사항을 충족하는 사용자 정의 워크스페이스 이미지를 만드는 방법을 안내합니다. 임의 사용자 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에서 만드는 모든 워크스페이스에서 이 사용자 정의 이미지를 사용할 수 있습니다.
