위 환경 테스트를 위한 준비
Azure Portal에 VM을 하나 띄움.
해당 VM에 GitLab를 docker로 설치 - 2222 포트
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