docker, docker-compose는 설치되어있다고 가정하고 진행함.
docker-compose.yml을 정의하기 전에 필요한 디렉토리를 생성해야한다.
gitlab을 데이터를 담기위한 볼륨은 로컬 또는 아래와 같이 NAS를 마운트된 경로를 지정하여 gitlab_home을 생성하고 data, logs, config 디렉토리를 만들어둔다.
그리고 소유권 및 권한을 설정하였다.
cd /mnt/bds #bds NCP NAS가 mnt/bds에 현재 마운트되어진 상태, 입맛에 맞게 로컬 경로 어딘가도 상관없음.
sudo mkdir gitlab_home #GitLab 작업 디렉터리 생성
cd gitlab_home
sudo mkdir data #어플리케이션 데이터 저장용
sudo mkdir logs #로그 저장용
sudo mkdir config #GitLab 구성 파일 저장용
sudo chown -R $USER:$USER /mnt/bds/gitlab_home #디렉토리 소유권 변경
sudo chmod -R 755 /mnt/bds/gitlab_home #권한 변경
docker-compose.yml을 아래와 같이 정의함.
version: '3.9'
services:
gitlab:
image: "gitlab/gitlab-ee:16.0.6-ee.0"
#image: "gitlab/gitlab-ee:15.11.10-ee.0"
container_name: gitlab
restart: always
hostname: "10.140.1.7"
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://10.140.1.7'
# gitlab ssh port number
gitlab_rails['gitlab_shell_ssh_port'] = 8022
# gitlab backup파일 저장 시간 2592000sec -> 30days
gitlab_rails['backup_keep_time'] = 2592000
gitlab_rails['backup_path'] = '/usr/local/backups'
# Add any other gitlab.rb configuration here, each on its own line
TZ: 'Asia/Seoul'
ports:
- "80:80"
- "443:443"
- "8022:22"
volumes:
- "/mnt/bds/gitlab_home/config:/etc/gitlab"
- "/mnt/bds/gitlab_home/logs:/var/log/gitlab"
- "/mnt/bds/gitlab_home/data:/var/opt/gitlab"
- "/mnt/bds/gitlab_home/backups:/usr/local/backups"
docker-compose.yml에서 정의한 내용 중에 중요한 부분을 설명하겠다.
image:
우선 image는 최신 이미지를 docker-hub에서 찾아서 사용하면된다. 개인적으로 latest를 쓰는거 보다는 딱 버전을 지정하는 걸 좋아해서 지정했다. 만약에 나중에 유지보수하다가 gitlab 업데이트가 필요하다면 image 부분을 주석처리하고 새로운 태그를 위와 같이 써주면 업데이트가 되는 것이다.
restart:
컨테이너가 죽거나 장애가 나면 자동으로 restart된다.
hostname:
현재 따로 도메인이 없이 서버의 주소를 써주었다. 내부망에서만 사용할꺼라서 나는 도메인을 쓰지 않고 서버 IP를 사용함.
evironment:
gitlab의 모든 config를 자유롭게 정의할 수 있는 곳이다. 일단 external_url은 필수로 작성해주어야하고.. gitlab_rails['gitlab_shell_ssh_port'] = 8022로 셋팅을 해야지 VM 서버에 접근하는 ssh와 충돌이 나지 않겠지...
그리고 나는 추가적으로 backup도 셋팅을 구성하였다. 보다시피 30일 백업을 보관하도록 구성하였고.. 먀알 새벽2시에 모든 gitlab 데이터 백업하여 /usr/local/backups에 저장한다.
포트랑 볼륨을 다음과 같이 vm server와 컨테이너와 맵핑했다.
docker-compose.yml로 정의했으면 해당 경로에서 아래의 명령어로 docker-compose를 실행한다.
docker-compose up -d
그리고 아래의 명령어로 현재 container의 상태를 확인한다.
watch docker ps
STATUS에 (health: starting)이라고 뜨면 현재 컨테이너에서 gitlab이 열시미 부팅중이다.
조금 기다려보면 STATUS가 healthy로 바뀌는데 그러면 이제 10.140.1.7을 브라우져로 들어가면 gitlab이 뜬다!.
아래의 명령어로 gitlab root 계정의 비밀번호를 출력할 수 있다. 이걸로 로그인하면된다.
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
'devops' 카테고리의 다른 글
네이버클라우드 서버에 스토리지 추가 및 초기화 작업 (0) | 2023.07.06 |
---|---|
GitLab-Runner Helm Installation (0) | 2023.07.06 |
docker-compose Gitlab 백업 구축하기 (0) | 2023.07.06 |
GitLab Pipeline Editor - safe.directory Error (0) | 2023.07.06 |
Helmchart로 Rancher 설치하기 (0) | 2023.07.06 |