- 전제 조건
- 기본 Dockerfile 만들기
- 임의의 사용자 ID 지원 추가
- 사용자 정의 작업 공간 이미지 빌드
- 사용자 정의 작업 공간 이미지를 GitLab 컨테이너 레지스트리에 푸시
- GitLab에서 사용자 정의 작업 공간 이미지 사용
튜토리얼: 임의의 사용자 ID를 지원하는 사용자 정의 작업 공간 이미지 만들기
- GitLab 15.11에 도입됨 remote_development_feature_flag라는 플래그와 함께. 기본적으로 비활성화됨.
- GitLab 16.0에서 GitLab.com 및 Self-Managed에서 활성화됨.
- GitLab 16.7에서 일반 사용 가능. 피처 플래그
remote_development_feature_flag
가 제거됨.
이 튜토리얼에서는 임의의 사용자 ID를 지원하는 사용자 정의 작업 공간 이미지를 만드는 방법을 배웁니다. 그런 다음 이 사용자 정의 이미지를 GitLab에서 생성하는 작업 공간에 사용할 수 있습니다.
임의의 사용자 ID를 지원하는 사용자 정의 작업 공간 이미지를 만들려면 다음을 수행하게 됩니다.
- 기본 Dockerfile 만들기.
- 임의의 사용자 ID 지원 추가.
- 사용자 정의 작업 공간 이미지 빌드.
- 사용자 정의 작업 공간 이미지를 GitLab 컨테이너 레지스트리에 푸시.
- GitLab에서 사용자 정의 작업 공간 이미지 사용.
전제 조건
- GitLab 계정 및 GitLab 컨테이너 레지스트리에 컨테이너 이미지를 만들고 푸시할 권한
- Docker 설치
기본 Dockerfile 만들기
컨테이너 이미지의 기본 Dockerfile을 만들기 위해 Docker 허브의 Python 3.11-slim-bullseye
이미지를 사용해 봅시다.
FROM python:3.11-slim-bullseye
다음으로, 이 기본 이미지를 수정하게 됩니다.
임의의 사용자 ID 지원 추가
기본 이미지에 임의의 사용자 ID를 지원하기 위해 다음을 수행해 봅시다.
-
gitlab-workspaces
사용자를5001
사용자 ID와 함께 추가합니다. - 필요한 디렉터리 권한을 설정합니다.
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에서 만드는 작업 공간에 사용할 수 있습니다.