Gitlab 이미지 pull
docker pull gitlab/gitlab-ce:latest
+) 참고
깃랩 관련 이미지는 gitlab-ce, gitlab-ee가 있는데, ce는 community, ee는 enterprise 전용이라고 한다.
나중에 깃랩을 유료 티어(Tier)로 업그레이드하려고 할 때, gitlab-ee는 깃랩을 다시 설치할 필요가 없다.
여기서는 gitlab-ce를 사용했다.
[관련자료]
GitLab CE vs EE | DevSecOps 구축 컨설팅, 교육, 기술지원 서비스 제공
Gitlab 컨테이너 실행
docker run
docker run --detach \
--hostname gitlab.example.com \
--publish 1980:80 --publish 1922:22 --publish 19443:443 \
--name gitlab \
--restart always \
--volume $HOME/gitlab/config:/etc/gitlab \
--volume $HOME/gitlab/logs:/var/log/gitlab \
--volume $HOME/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
<옵션>
- detach: 백그라운드 실행.
- hostname: gitlab 전용 도메인
- publish: gitlab에서는 22(ssh), 80(http), 443(https) 포트를 사용하는데 이를 포트포워딩 해준다.
- name: 컨테이너의 이름을 지정한다.
- restart: docker desktop이 실행될 때마다 자동으로 실행하는 명령어.
- volume: 데이터가 저장되는 곳을 설정해준다. 저 코드대로 라면 당연히 로컬에 $HOME/gitlab 디렉토리가 있어야 한다. /config, /logs, /data 디렉토리는 없다면 자동으로 생성해준다.
+) 참고
Apple M1 맥북에서는 컨테이너가 실행은 되지만, gitlab 접속이 되지 않는다.
M1이 아직 gitlab 이미지와 호환되지 않는다는 의견이 있다.
[관련자료]
https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/6659
https://forum.gitlab.com/t/gitlab-ce-docker-on-apple-m1-stuck-on-recipe-gitlab-database-migrations/49297/17
<로그 확인>
docker logs -f gitlab
좀 기다리다가(최대 10분) health check 같은 특정 로그들이 계속 반복해서 출력되고 있다면 정상적으로 컨테이너가 생성된 것이다.
<깃랩 접속>
http://localhost:1980
로그인 화면이 뜨면 정상 작동한 것이다.
Docker Compose
컨테이너 실행할때마다 매번 복잡한 docker run 명령어를 입력하는 것보다 docker compose를 사용하는 것이 더 편리하다.
혹은 docker run 방법이 안되면 compose 방식을 사용하자.
<docker-compose.yml>
version: '3.6'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
container_name: gitlab
restart: always
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.example.com'
ports:
- "1980:80"
- "1922:22"
- "19443:443"
volumes:
- '$HOME/gitlab/config:/etc/gitlab'
- '$HOME/gitlab/logs:/var/log/gitlab'
- '$HOME/gitlab/data:/var/opt/gitlab'
설정은 docker run의 옵션과 크게 다르지 않다.
+) external_url을 compose 파일에서 한 번에 설정할 수 있어서 편리하다.
<실행>
docker-compose up -d
+) docker-compose.yml이 있는 디렉토리에서 실행해야 한다.
로그인 화면이 뜨면 정상 작동한 것이다.
Gitlab 루트 계정 접속
<docker 접속>
docker exec -it gitlab /bin/bash
<비밀번호 확인>
cat /etc/gitlab/initial_root_password
출력된 로그에서 Password 부분을 다른 데 기록해두자.
<Gitlab 계정>
- Username or email: root
- Password: [위에서 확인한 Password]
-> 첫 로그인시 password는 변경하는 것이 편하다.
'devops > docker' 카테고리의 다른 글
[Docker] Dockerfile로 Docker에서 Spring boot 서버 실행 (0) | 2022.07.22 |
---|---|
[Docker] Dockerfile & build (0) | 2022.06.28 |
[Docker] Docker compose (0) | 2022.06.28 |
[Docker] Docker commit & push (0) | 2022.06.28 |
[Docker] 도커 입문 (0) | 2022.06.28 |