- 전제 조건
- 기본 Dockerfile 만들기
- 임의 사용자 ID 지원 추가
- 사용자 정의 작업공간 이미지 빌드
- 사용자 정의 작업공간 이미지를 GitLab 컨테이너 레지스트리에 푸시
- GitLab에서 사용자 정의 작업공간 이미지 사용
튜토리얼: 임의 사용자 ID를 지원하는 사용자 정의 작업공간 이미지 생성
이 튜토리얼에서는 임의 사용자 ID를 지원하는 사용자 정의 작업공간 이미지를 만드는 방법을 배웁니다.
그러면 이 사용자 정의 이미지를 GitLab에서 생성하는 모든 작업공간과 함께 사용할 수 있습니다.
임의 사용자 ID를 지원하는 사용자 정의 작업공간 이미지를 만들기 위해 다음을 수행합니다:
- 기본 Dockerfile 만들기.
- 임의 사용자 ID 지원 추가.
- 사용자 정의 작업공간 이미지 빌드.
- 사용자 정의 작업공간 이미지를 GitLab 컨테이너 레지스트리에 푸시.
- GitLab에서 사용자 정의 작업공간 이미지 사용.
전제 조건
- GitLab에서 컨테이너 이미지를 생성하고 푸시할 수 있는 권한이 있는 계정
- Docker 설치
기본 Dockerfile 만들기
컨테이너 이미지에 대한 기본 Dockerfile을 만들기 위해, Docker Hub에서 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에서 생성하는 모든 작업공간과 함께 사용할 수 있습니다.