- 전제 조건
- 기본 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 지원을 추가하려면 다음을 수행합니다:
-
5001
사용자 ID를 갖는 새gitlab-workspaces
사용자 추가 - 필요한 디렉터리 권한 설정
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에서 생성하는 모든 워크스페이스에 사용할 수 있습니다.