728x90
반응형
상황
- 윈도우서버에 형상관리를 위해 GitLab을 설치해야 할 일이 생겼다.
처리방법
- 윈도우용 도커에 GitLab설치하기로 했다.
(지우기도 좋고, 새로 설치하기도 좋고..)
윈도우용 도커 설치
- https://www.docker.com/ 사이트에 접속하여 window docker 를 받아 설치한다.
docker-compose 작성
- docker 폴더 안에 compose폴더와 volumes 폴더를 만들어준다.
(폴더 구조가 정해진건 아니라 각자 원하는대로 만들면된다.)
- compose폴더는 컨테이너별로 폴더를 만들어서 docker-compose.yml 파일을 만들어서 넣기위한 폴더
- volumes폴더는 컨테이너별로 폴더를 만들어서 마운트할 폴더/파일등을 넣기위한 폴더
- compose/gitlab 폴더 안에 docker-compose.yml 파일을 만든다.
- docker-compose.yml 파일안에 다음과 같이 작성한다.
- hostname, external_url은 설치되는 서버의 도메인이나 IP를 적어준다.
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 'https://gitlab.example.com'
gitlab_rails['gitlab_shell_ssh_port'] = 9022
TZ: 'Asia/Seoul'
ports:
- "9080:80"
- "9443:443"
- "9022:22"
volumes:
- "../../volumes/gitlab/config:/etc/gitlab"
- "../../volumes/gitlab/logs:/var/log/gitlab"
- "../../volumes/gitlab/data:/var/opt/gitlab"
shm_size: 1G
확인
- docker-compose up 해서 잘돌아가는지 확인한다.
docker-compose up -d
- 윈도우인 경우 다음과 같은 오류가 발생할 수 있다.
Error response from daemon: user declined directory sharing C:\docker\volumes\gitlab\config
- directory sharing 을 해달란건데 다시 docker-compose down 하고 docker-compose up -d 를 한다음 윈도우 우측 하단을 주시하고 있으면, share it? 하고 메시지가 뜨는데 share it을 눌러주자!
- share it 을 다 해주고 나면 정상적으로 구동되는걸 확인 할 수 있다.
오류처리
- 제대로 작동이 안되는 경우 몇가지를 정리해보겠다.
Chef::Exceptions::ValidationFailed: Option name's value does not match regular expression오류
- 다음과 같은 오류가 발생할 경우
Chef::Exceptions::ValidationFailed: Option name's value does not match regular expression /^[\-[:alnum:]_]+$/
- hostname에 http 나 https를 붙여서 그렇다. 아래와 같이 빼주자.
version: '3.6'
services:
gitlab:
image: "gitlab/gitlab-ce:latest"
container_name: gitlab
restart: always
hostname: "127.0.0.1"
...
ShellCommandFailed: Failed asserting that mode permissions on "/var/opt/gitlab/.ssh" is 0700 오류
- 다음과 같은 오류가 발생할 경우
gitlab | [2023-01-04T16:54:16+09:00] FATAL: Stacktrace dumped to /opt/gitlab/embedded/
cookbooks/cache/cinc-
stacktrace.out
gitlab | [2023-01-04T16:54:16+09:00] FATAL: ------------------------------
------------------------------
---------------------------
gitlab | [2023-01-04T16:54:16+09:00] FATAL: PLEASE PROVIDE THE CONTENTS OF THE stacktrace.out FILE (above) IF YOU FILE A BUG REPORT
gitlab | [2023-01-04T16:54:16+09:00] FATAL: ------------------------------
------------------------------
---------------------------
gitlab | [2023-01-04T16:54:16+09:00] FATAL: Mixlib::ShellOut::
ShellCommandFailed: storage_directory[/var/opt/
gitlab/.ssh] (gitlab::gitlab-shell line 34) had an error: Mixlib::ShellOut
::ShellCommandFailed: ruby_block[directory resource: /var/opt/gitlab/.ssh] (gitlab::gitlab-shell line 36) had an error: Mixlib::ShellOut::
ShellCommandFailed: Failed asserting that mode
permissions on "/var/opt/gitlab/.ssh" is 0700
gitlab | ---- Begin output of set -x && [ "$(stat --printf='%04a' $(readlink -f /var/opt/gitlab/.ssh) | grep -o '....$')" = '0700' ] ----
gitlab | STDOUT:
gitlab | STDERR: + grep -o ....$
gitlab | + readlink -f /var/opt/gitlab/.ssh
gitlab | + stat --printf=%04a /var/opt/gitlab/.ssh
gitlab | + [ 0777 = 0700 ]
gitlab | ---- End output of set -x && [ "$(stat --printf='%04a' $(readlink -f /var/opt/gitlab/.ssh) | grep -o '....$')" = '0700' ] ----
gitlab | Ran set -x && [ "$(stat --printf='%04a' $(readlink -f /var/opt/gitlab/.ssh) | grep -o '....$')" = '0700' ] returned 1
- 꼭 .ssh폴더가 아니더라도 permissions 오류가 발생하면 docker-compose.yml파일을 열고 volumes부분을 아래와 같이 수정해준다. gitlab_data:/var/opt/gitlab .... volumes: gitlab_data:
version: '3.6'
services:
gitlab:
image: "gitlab/gitlab-ce:latest"
container_name: gitlab
restart: always
hostname: "127.0.0.1"
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.example.com'
gitlab_rails['gitlab_shell_ssh_port'] = 9022
TZ: 'Asia/Seoul'
ports:
- "9080:80"
- "9443:443"
- "9022:22"
volumes:
- "../../volumes/gitlab/config:/etc/gitlab"
- "../../volumes/gitlab/logs:/var/log/gitlab"
- "gitlab_data:/var/opt/gitlab"
shm_size: 1G
volumes:
gitlab_data:
구동확인
- docker-compose down으로 켜져있다면 종료해주고, docker-compose up으로 gitlab을 구동시켜준다.
- 알겠지만 docker-compose 커맨드를 치는 경로는 docker-compose.yml파일이 있는 경로에서 해주면 된다.
docker-compose down;
docker-compose up;
- docker ps를 쳐서 제대로 돌아가고 있는지 확인하자
docker ps
- gitlab구동시 시간이 좀걸릴 수 있으니 여유를 가지고 기다려주자.
- 위에서 지정해준 포트로 접속해보면 gitlab이 정상적으로 구동되는걸 확인 할 수 있다.
- 관리자 계정 ID는 root , 패스워드는 ( docker-compose.yml 파일의 volumes설정과 동일하게 했다면 volumes > gitlab > config 안에) inital_root_password 라는 파일을 열고 Password 에 적힌 문구를입력하면 된다.
패스워드 변경방법
- 로그인 후 GitLab 우측 상단에 있는 아바타를 클릭해고 Edit profile을 선택한다.
- User Settings 사이드메뉴에서 Password 를 선택한 후 원하는 패스워드로 변경 해주면 된다.
728x90
반응형