
sudo mkdir -p /data/gitlab && cd /data/gitlab
mkdir -p /data/gitlab
/data/gitlab 디렉토리를 생성.
-p 옵션: 부모 디렉토리(/data)가 없으면 자동으로 생성.
cd /data/gitlab
해당 디렉토리로 이동.
✅ 즉, GitLab 데이터를 저장할 디렉토리를 만들고 이동하는 과정.
sudo mkdir data logs config
GitLab은 여러 개의 디렉토리를 필요로 함.
data/ → Git 저장소 데이터 저장
logs/ → GitLab 실행 로그 저장
config/ → GitLab 설정 파일 저장
✅ GitLab이 정상적으로 작동하도록 필요한 디렉토리를 미리 생성하는 단계.
sudo chown -R $USER:$USER /data/gitlab
이유
chown -R $USER:$USER /data/gitlab
현재 사용자가 /data/gitlab 및 하위 디렉토리를 소유하도록 변경.
$USER는 현재 로그인한 사용자를 의미.
✅ 루트(root) 권한 없이 GitLab을 실행할 수 있도록 설정하는 과정.
sudo chmod -R 755 /data/gitlab
chmod -R 755
소유자(읽기, 쓰기, 실행): rwx (7)
그룹 & 다른 사용자(읽기, 실행만 가능): r-x (5)
-R 옵션은 모든 하위 디렉토리에 적용.
✅ GitLab이 정상적으로 파일을 읽고 실행할 수 있도록 권한을 설정하는 과정.
💡 이 과정이 필요한 이유
GitLab이 데이터를 저장할 디렉토리를 확보 (/data/gitlab + 하위 폴더)
GitLab 실행 시 권한 문제를 방지 (chown으로 소유권 변경)
필요한 파일 접근 권한을 설정 (chmod 755)

vi docker-compose.yml
services:
gitlab:
image: yrzr/gitlab-ce-arm64v8:17.7.4-ce.0
container_name: gitlab
restart: always
hostname: "192.168.0.31"
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url '192.168.0.31:80'
gitlab_rails['gitlab_shell_ssh_port'] = 8022
TZ: "Asia/Seoul"
ports:
- '80:80'
- '443:443'
- '8022:22'
volumes:
- './config:/etc/gitlab'
- './logs:/var/log/gitlab'
- './data:/var/opt/gitlab'
docker-compose up -d

docker-compose logs -f
docker-compose를 사용하여 GitLab 컨테이너의 로그를 실시간(-f)으로 확인하는 명령어.
GitLab이 정상적으로 실행되고 있는지 확인하거나 오류 발생 시 원인을 파악하는 데 유용.
docker-compose ps

현재 docker-compose로 실행 중인 컨테이너 목록을 보여주는 명령어.
이미지의 출력 내용을 보면:
컨테이너 이름: gitlab
실행 상태: Up (healthy) → GitLab이 정상적으로 실행되고 있음을 의미
포트 정보:
80 (HTTP)
443 (HTTPS)
22 (SSH) → 호스트에서는 8022 포트로 접근 가능
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
GitLab의 초기 루트 비밀번호를 확인하는 명령어.
실행 시:
docker exec -it gitlab → gitlab 컨테이너 내부에서 명령어 실행
grep 'Password:' /etc/gitlab/initial_root_password → 초기 비밀번호가 저장된 파일에서 Password:가 포함된 줄 출력
GitLab 최초 로그인 시 root 계정의 비밀번호를 확인할 때 필수적으로 사용.

sudo mkdir -p /data/gitlab-runner/config && cd /data/gitlab-runner
sudo chown -R $USER:$USER /data/gitlab-runner
version: '3.9'
services:
gitlab-runner:
image: gitlab/gitlab-runner:alpine3.19-bleeding
platform: linux/arm64
container_name: gitlab_runner
restart: always
volumes:
- './config:/etc/gitlab-runner'
- '/var/run/docker.sock:/var/run/docker.sock'
실행이 완료 되면 아래와 같은 에러 로그가 계속 되는데 gitlab 연결 설정이 되지 않았기 때문에 정상

admin > runners > Registration token

다시 콘솔로 돌아가서 앞서 실행했던 runner 컨테이너로 접속
docker exec -itu 0 gitlab-runner bash
register를 통해 등록








sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
sudo apt-get install -y postfix
Internet Site 선택 후 기본 설정 유지curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
sudo EXTERNAL_URL="https://gitlab.example.com" apt-get install gitlab-ee
apt-cache madison gitlab-ee # 설치 가능한 버전 확인
sudo apt-mark hold gitlab-ee # 자동 업데이트 제한
sudo apt-mark showhold # 제한된 패키지 확인
https://gitlab.example.com 접속root/etc/gitlab/initial_root_password (설치 후 24시간 내에 확인 가능)