깃랩(GitLab)은 깃랩 사(GitLab Inc.)가 개발한 깃 저장소 및 CI/CD, 이슈 추적, 보안성 테스트 등의 기능을 갖춘 웹 기반의 데브옵스 플랫폼입니다.
오늘은 docker-compose를 활용해 GitLab을 설치해보도록 하겠습니다.
docker pull gitlab/gitlab-ce:latest
cd /data
sudo mkdir gitlab
cd gitlab
sudo mkdir data
sudo mkdir logs
sudo mkdir config
디렉토리 | 용도 |
---|---|
data | 애플리케이션 데이터 저장용 |
logs | 로그 저장용 |
config | GitLab 구성 파일 저장용 |
기본적으로 Docker의 데이터는 쓰기 가능한 컨테이너 레이어에 저장되어, 해당 컨테이너가 더 이상 존재하지 않으면 데이터가 유지되지 않으며, 다른 프로세스에서 필요로 할 경우 컨테이너에서 데이터를 가져오는 것이 어려울 수 있습니다. Docker에는 컨테이너가 호스트 시스템에 파일을 저장하는 두 가지 옵션이 있어, 컨테이너가 중지된 후에도 데이터를 영속적으로 유지할 수 있습니다.
Volumes : Docker(/var/lib/docker/volumes/)에서 관리하는 호스트 파일 시스템의 일부에 저장
Bind mounts : 호스트 시스템의 어느 위치에서나 저장할 수 있음
sudo chown -R $USER:$USER /data/gitlab
sudo chmod -R 755 /data/gitlab
vi docker-compose.yml
version: '3.9'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
container_name: gitlab
restart: always
hostname: 'IP작성'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'IP작성:80'
gitlab_rails['gitlab_shell_ssh_port'] = 8022
# Add any other gitlab.rb configuration here, each on its own line
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