...
Self-hosted runner를 설치 (host 다이렉트 설치)
1단계: Ubuntu 24.04 기본 세팅
1-1. 패키지 업데이트
sudo apt update sudo apt upgrade -y
(필요하면 재부팅)
sudo reboot
다시 접속 후:
uname -a lsb_release -a # 24.04 확인용
...
2단계: Docker & docker-compose 설치
2-1. Docker 설치
sudo apt install -y ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo $VERSION_CODENAME) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
2-2. 도커 권한 & 서비스 확인
sudo usermod -aG docker $USER newgrp docker docker version docker run hello-world
hello-world 까지 잘 나오면 OK.
...
3단계: GitLab CE 컨테이너로 설치
여기서는 단일 컨테이너 Omnibus GitLab CE로 갈게.
VM에서 GitLab용 디렉터리 하나 만들자:
mkdir -p ~/gitlab/{config,logs,data}
cd ~/gitlab
3-1. docker-compose.yml 작성
~/gitlab/docker-compose.yml 생성:
cat << 'EOF' > docker-compose.yml version: "3.8" services: gitlab: image: gitlab/gitlab-ce:latest container_name: gitlab restart: always hostname: gitlab.local environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://YOUR_VM_PUBLIC_IP' gitlab_rails['gitlab_shell_ssh_port'] = 2222 ports: - "80:80" - "443:443" - "2222:22" volumes: - ./config:/etc/gitlab - ./logs:/var/log/gitlab - ./data:/var/opt/gitlab EOF
✅
YOUR_VM_PUBLIC_IP부분은 실제 Azure VM Public IP로 수정해줘.
3-2. Azure NSG / 방화벽 확인
Azure 포털에서 이 VM에 대해:
인바운드 규칙에 80/tcp, 443/tcp, 2222/tcp 허용되어 있는지 확인
(테스트만 하면 80/2222만 열어도 됨)
3-3. GitLab 컨테이너 실행
cd ~/gitlab docker compose up -d
docker ps
GitLab 컨테이너가 healthy 상태 되기까지 3~5분 정도 걸릴 수 있음.
상태 확인:
docker logs -f gitlab
| 코드 블럭 |
|---|
studydev@op-gitlab:~/gitlab$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3a566db72c5b gitlab/gitlab-ce:latest "/assets/init-contai…" 20 minutes ago Up 20 minutes (healthy) 0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 0.0.0.0:2222->22/tcp, [::]:2222->22/tcp gitlab |