ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker로 gitlab 설치
    Linux 2018. 5. 10. 19:29

    회사의 중요한 자산인 소스를 완전 관리형의 편의로 외부에 두는건 좀 불안해서
    gitlab 택했다.  과거에는 이거 설치하다 완전 날새기 일쑤 였는데 요즘 Docker 가 다 해결해 주니 참 편리한 세상이다. ^^; 


    난 docker-compose 를 활용해서 설치할 것이다. 


    공식문서 : https://docs.gitlab.com/omnibus/docker/  
     

    글 중간쯤에 이렇게 친절하게 설명하고 있다. 


    자 이제 본격적으로 설치해보자 

    OS :  AWS CentOS 

    CPU : 2 

    RAM : 4GB  (가급적 8G , 4G 인경우 hang 이 걸리는 상황 발생)


    일단 도커가 필요하다.! 

    AWS AMI 는 기본적으로 Docker 를 설치할수 있게 repository 를 연결하고 있다. 

    모두 root 계정으로 실행 

     EC2 생성 직후라면  원할한 진행을 위해 업그레이드를 하자 , 아니면 skip 

    # yum -y upgrade  

    도커설치 

    # yum -y install docker


    AWS 사용중이라면 이렇게 ec2-user 도커 실행 권한을 부여해 놓자. 

    #  usermod -aG docker ec2-user


    도커 서비스 시작 

    # service docker start

    # systemctl enable docker : 자동실행 설정 


    //쉘 닫고 ec2-user 새로운 티미널 열고 확인 

    #> docker --version





    도커 컴포저 설치 

    공식문서 링크 


    * 2019-04월 기준 (버전은 계속 변경될수 있다. 위에 링크 확인 필요! .)

    sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

    # sudo chmod +x /usr/local/bin/docker-compose

    설치가 완료되면 정상작동하는지 버전 확인해보자 

    # docker-compose --version


    docker 컴포저를 이용하여 설치하기 위한  yml 파일 작성

    도커이미지 링크 

    docker-compose.yml을 다운 받거나 아래처럼 vi 로 편집해서 사용해도 된다. 

    URL 은 임의로  gitlab.my.com  으로 가정한다

    vi docker-compose.yml


    web:
      container_name : gitlab
      image: 'gitlab/gitlab-ce:latest'
      restart: always
      hostname: 'gitlab.my.com'    
      environment:
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://gitlab.my.com'    
      ports:
        - '80:80'
        - '443:443'
        - '1022:22'
      volumes:
        - '/srv/gitlab/config:/etc/gitlab'
        - '/srv/gitlab/logs:/var/log/gitlab'
        - '/srv/gitlab/data:/var/opt/gitlab'



    난 위 처럼 말고 별도 파티션(/data)으로 분리해서 사용한다.


    hosts 등록이 필요한 경우 
     extra_hosts:
          - "gitlab.my.com:172.31.21.93"  이런식으로 ..



    22번은 이미 ssh 로 사용중이니 1022 맵핑 

    그리고 docker-compose.yml 파일이 있는 경로에서 실행 

    docker-compose up -d


    이렇게 하면 대략  초기 3분 정도 시간이 필요한데 진행상황을 보고 싶은경우에는 

    # docker ps  명령을 통해 컨테이너명을 확인하고 

    # docker logs -f <컨테이너명> 

    위와 같이 실행면 로그 파일 확인이 가능하다. 



    실제 웹사이트 접속!  http://서버 ip  or 도메인 

    아래와 같이나오면 설공 

    위 화면이 root 비번 변경하는 화면 





    메일 설정 

    docker exec -it  root_web_1 /bin/bash

    위 명령어로 docker 콘솔 접속 

    vi /etc/gitlab/gitlab.rb 

    로 해당설정 오픈해서 GMAIL 설정 

    상세 설정 내용은

    https://docs.gitlab.com/omnibus/docker/README.html#install-gitlab-using-docker-compose

    여기에서 

    https://docs.gitlab.com/omnibus/settings/smtp.html

    이쪽 내용에서 확인 가능 

    변경내용을 적용하기 위해 아래 명령어 사용 

    해당 명령어는 여전히 도커 내부 bash 임 

    gitlab-ctl reconfigure


    이렇게 하면 설치끝! 



    서버 이관 하기 


    1. gitlab 버전 확인 
    : help 클릭 


    2. 동일한 버전으로 신규 서버에 설치 

    즉 난 10.7.3 버전이니까 도커허브에서 버전확인하고  compose 파일 아래 처럼 수정해서 기동

    web:
      image: 'gitlab/gitlab-ce:10.7.3-ce.0'
    ~~ 생략 ~~ 


    3. 백업 

    공식 문서 Link

     1)  우선 old gitlab 서버에서 gitlab-rake 명령을 통해 백업 실행 !
      docker exec -it root_web_1 gitlab-rake gitlab:backup:create

    그럼 이렇게 진행되고 tar 파일이 생성됨 

    2) 1557812389_2019_05_14_10.7.3_gitlab_backup.tar 파일을 이제 호스트로 복사 

    3) 일단 실제 파일 생성됐는지  경로 확인

    # docker exec -it root_web_1 /bin/bash

    # cd  /var/opt/gitlab/backups

    확인됐으면 호스트쪽으로 복사 

    # docker cp root_web_1:/var/opt/gitlab/backups/1557812389_2019_05_14_10.7.3_gitlab_backup.tar ./


    * 참고! 
    이미 볼륨마운트를 한 상황이라 위처럼 안해도 됨! 이미 호스트 파일 시스템에 파일이 존재한다! 

    cd /srv/gitlab/data/backups

    여기서 그냥 복사해오면됨 


    4. tar 파일을 이제 신규 서버로 이동
    : sftp 활용해서 


    신규 서버의 cd /srv/gitlab/data/backups 에 tar 파일을 옮겨 놓는다 


    그리고 신규서버 docker 쉘에 접속해서 아래 명령어를 실행한다 
    # docker exec -it root_web_1 /bin/bash

    그럼 먼가 메시지가 많이 나오면 한참 진행된다. 

    gitlab-ctl reconfigure
    gitlab-ctl start
    gitlab-ctl stop unicorn
    gitlab-ctl stop sidekiq
    gitlab-ctl status

    그리고 이게 끝나면  호스트 쪽에서 

    # docker exec -it root_web_1 gitlab-rake gitlab:backup:restore --trace
    위 명령어로 복구 시작 진행 ! 

    중간에 계속하겠냐고 묻고 yes  라고 하면 한참 진행된다. 


    끝나면 다시 도커 쉘 접근해서 
    # docker exec -it root_web_1 /bin/bash

    # gitlab-ctl restart

    이렇게 하면 끝! 


    참고 문서 



    'Linux' 카테고리의 다른 글

    MariaDB 설치 (CentOS 7.x)  (0) 2018.08.25
    MariaDB 인코딩 이슈  (0) 2018.07.12
    GoAccess - 아파치 로그 분석  (0) 2018.03.22
    CentOS 6 Epel 저장소 추가하기  (0) 2018.03.21
    Dokuwiki 설치하기  (0) 2017.06.08

    댓글

Designed by Tistory.