728x90
개요
gitlab은 git 기반 코드 저장소이다.
필자는 gitlab을 외부에 코드를 공개하기는 싫고, 나 혼자 쓰고 싶을 때 사용한다.
이 포스트에서는 podman을 이용하여 gitlab을 설치하는 방법에 대해 다룬다.
요구 사항
CPU core: 2개 이상
RAM: 4G 이상
라즈베리파이 같은 경우, gitlab 구동은 굉장히 어렵다.
차라리 gogs같은 다른 코드 저장소를 사용하기를 바란다.
단, gogs는 gitlab과 같은 다양한 기능을 제공하지 않는다.
host 설정
host 설정은 보통 안 해도 된다.
그런데, OS에 따라 localhost가 설정 안 되어 있을 수가 있다.
설정 안 되어 있을 때만 설정하면 된다.
- /etc/hosts
127.0.0.1 localhost
podman 설치
gitlab 설치
sudo mkdir -p /srv/gitlab/{config,logs,data}
sudo podman run --detach \
--publish 6015:22 --publish 80:80 \
--name gitlab \
--restart always \
--privileged \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
docker.io/gitlab/gitlab-ce:latest
옵션 설명
옵션 | 설명 | 예시 |
name | container 이름 | gitlab |
publish | 외부 port 공개 | 6015:22, 80:80 |
restart always | 재부팅 혹은 컨테이너 오류 발생하는 경우, 자동 재시작 | |
volume | 볼륨 영속성 제공 | /srv/gitlab/config:/etc/gitlab, /srv/gitlab/logs:/var/log/gitlab, /srv/gitlab/data:/var/opt/gitlab |
gitlab 설정
- /srv/gitlab/config/gitlab.rb
- 주의: external_url은 자신의 IP 혹은 hostname으로 변경해야 한다.
external_url 'http://127.0.0.1'
gitlab_rails['gitlab_shell_ssh_port'] = 6015
gitlab_rails['lfs_enabled'] = true;
- 설정 적용
sudo podman exec -it gitlab gitlab-ctl reconfigure
podman 재실행 데몬 실행
sudo systemctl enable --now podman-restart
gitlab 비밀번호 리셋
위에서 설정한 external_url로 홈페이지 접속이 되는 것이 확인되면, 아래 명령을 통해 root의 비밀번호를 초기화한다.
sudo podman exec -it gitlab gitlab-rake "gitlab:password:reset"
실패들
- podman은
--volume 옵션
의 source를 생성하지 않는다.
그러므로, 직접 source 디렉터리를 만들어줘야 한다.
docker는 자동으로 만들어줘서 podman 역시 그럴 거라고 착각했다. - 예전 버전의 gitlab에서는 초기 설치 시, root의 비밀번호를 세팅하는 과정이 웹 UI에 있었다.
하지만 버전이 올라가면서, root의 비밀번호 초기화가 웹 UI에서 빠졌다.
이거 때문에 뭘 잘못한 줄 알고 좀 헤맸다. - podman은
--restart always
옵션을 적용하기 위해서 podman-restart 서비스를 enable 해줘야 한다. docker는 기본적으로 재실행해줘서 몰랐다. - gitlab 로그에 localhost가 no such host라는 에러를 뿜어내며, 실행되지 않는다.
OS에 따라 /etc/hosts에 localhost 설정을 기본으로 해주지 않는 OS가 있었다. 해주면 된다.
마치며
gitlab은 git기반으로 코드를 쉽게 관리할 수 있게 해줄 뿐 아니라, runner를 통해서 테스트 및 배포를 자동화해준다. 이러한 환경에서 개발할 수 있다는 것은 정말 큰 축복이다.
gitlab에게 감사한다.
'편(編) > 설치' 카테고리의 다른 글
kubernetes 설치 (0) | 2021.10.25 |
---|---|
kubernetes 설치 - kubespray (0) | 2021.10.04 |
podman 설치 (0) | 2021.09.14 |
nextcloud 설치 (0) | 2021.09.06 |
docker 설치 (0) | 2021.08.25 |