환경 구성
- GitLab 구성 (Group - SubGroup - Project): http://20.64.230.118/studysolutiona/backend
- GitHub Self-hosted runner
- GitHub 구성: https://github.com/orgs/StudySolutionNew/repositories
- Migration-Control Repo
- (마이그레이션으로 자동 생성된) backend-echo-api
동작 테스트
1. run workflow 기반으로 직접 요청: 동작 가능 확인
2. 붉은색 AgentHQ를 통한 요청: 동작 불가능
동작 불가 사유: AgentHQ에는 workflow dispatch 권한이 빠져 있음.
환경 테스트를 위한 세팅 과정
Azure Portal에 VM을 하나 띄움.
해당 VM에 GitLab를 docker로 설치 (80 포트로 운영)
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 작성
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 허용되어 있는지 확인
(테스트만 하면 80만 열어도 됨)
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
4단계: GitLab 처음 접속 & root 비밀번호
4-1. root 초기 비밀번호 확인
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
출력 예:
Password: AbCdEfGh... (이걸 복사)
4-2. 브라우저에서 접속
PC 브라우저에서:
http://<VM_PUBLIC_IP>접속Username:
rootPassword: 위에서 확인한 값
로그인 후:
필요하면 root 비밀번호를 새로 변경
Timezone, 이메일 등 기본 설정
여기까지 GitLab 기본 인프라 세팅
5. GitLab에 프로젝트 구성
StudySolutionA (Group)
├── backend (SubGroup)
│ ├── echo-api (Project)
│ └── hello-api (Project)
├── frontend (SubGroup)
│ └── simple-web (Project)
└── llm (SubGroup)
└── (나중에 필요하면 추가)




