gitlab, gitlab-runner 서버 : 프라이빗 오픈스택 - 10.0.0.5
10.0.0.4 => 10.0.0.5 Gitlab 마이그레이션 및 도커 컨테이너 전환
이미지 파일화 -> 프라이빗 레지스터리에 올려놓음
dockerpr.educo.co.kr/service/gitlab/gitlab-runner:v13.12.0
dockerpr.educo.co.kr/service/gitlab/gitlab:v13.12.15
도커야뮬 경로 : /home/sysoper/docker-compose
아래 와 같이 볼륨 마운트바인드 사용함
gitlab 데이터 경로 : /home/gitlab/config,data,logs,git
gitlab-runner 데이터 경로 : /home/gitlab-runner/config
gitlab 백업 경로 : /home/gitlab/git/gitlab_backup
진행 순서
* 백업 마이그레이션이 양방향으로 같은 버전이여야 복원이 가능하다 기존 10.0.0.4 버전 : 12.7.5
10.0.0.5 - docker-compose 로 12.7.5 같은 버전 설치 후 복원
# docker exec -it gitlab /bin/bash
$ docker exec -it gitlab gitlab-backup restore BACKUP=파일명
복원 확인 후
아래 와 같이 업데이트 진행
gitlab-ce-12.10.14
gitlab-ce-13.0.14
gitlab-ce-13.1.11
gitlab-ce-13.8.8
gitlab-ce-13.12.15
정상 확인 후
gitlab-runner 생성
# docker exec -it gitlab-runner /bin/bash
$ gitlab-runner resister
개발팀 push, pull 테스트, 빌드 확인 - 오픈
나중에 장애 발생 시 - 업데이트 과정은 필요 없습니다.
13.12.15 버전이므로 13.12.15버전으로 백업 받으닌깐 그냥 컨테이너 다시 살리고 복원 시키면 됨 ( 굳이 데이터 날라간거 아니면 복원과정은 필요없음, 데이터는 로컬이 가지고 있으니 그냥 컨테이너만 살리면 됨 )
러너유저도 바인드마운트 되어 있어서 나중에는 굳이 설정 안해도 됩니다. 컨테이너만 살리면 됨 - 신규러너 추가 시만
########### gitlab docker ###########
docker-compose.yml
version: '3.9'
services:
gitlab:
image: ".gitlab/gitlab:v13.12.15"
container_name: gitlab
restart: always
hostname: "dev.git"
environment:
GITLAB_OMNIBUS_CONFIG: |
# external_url 'http://10.0.0.5:5584'
# gitlab_rails['gitlab_shell_ssh_port'] = 2222
# Add any other gitlab.rb configuration here, each on its own line
TZ: 'Asia/Seoul'
ports:
- "5584:5584"
- "4443:443"
- "2222:22"
volumes:
- "/home/gitlab/config:/etc/gitlab" ## 깃랩 구성파일 로컬호스트로 바인드마운트
- "/home/gitlab/logs:/var/log/gitlab" ## 깃랩 로그
- "/home/gitlab/data:/var/opt/gitlab" ## 깃랩 데이터
- "/home/gitlab/git:/home/git" ## 깃랩 백업 경로 기존과 동일하게 맞춰줬음 /home/git/gitlab_backup
- ./gitlab.rb:/etc/gitlab/gitlab.rb ## 깃랩 핵심파일
- ./gitlab-secrets.json:/etc/gitlab/gitlab-secrets.json ## 깃랩 토큰을 통한 CI/CD,웹훅 설정값 구성파일
gitlab-runner:
image: "gitlab/gitlab-runner:v13.12.0"
container_name: gitlab-runner
restart: always
volumes:
- "/home/gitlab-runner/config:/etc/gitlab-runner" ## 깃랩 러너유저 구성파일
- "/home/sysoper/.ssh:/home/gitlab-runner/.ssh" ## 컨테이너 새로 생성시 키값을 새로 등록하는 번거롭이 있어서 컨테이너 올리기만 하면 바로 서비스를 할 수 있게 만들고 마운트 시킴
- "/var/run/docker.sock:/var/run/docker.sock" ## 도커 프록시, 도커 소켓 파일 구성 등
############ gitlab Dockerfile ############
Dockerfile
## GIT IMAGE 오피셜 공식 홈페이지에서 받음 ##
FROM gitlab/gitlab-ce:13.12.15-ce.0
## 설정값 적용을 위해 설치 ##
RUN apt-get update
RUN apt-get install sshpass
## MAVEN
COPY ./maven.tar /usr/local
RUN tar -xvf /usr/local/maven.tar -C /usr/local
## JAVA
COPY ./java.tar /usr/local
RUN tar -xvf /usr/local/java.tar -C /usr/local
## profile source MAVEN, JAVA 환경변수 수정
COPY ./profile /etc/profile
COPY ./source.sh /home
# 환경변수 적용 스크립트
WORKDIR /home
RUN ./source.sh
############ gitlab-runner Dockerfile ###########
Dockerfile
## 깃랩 공식 오피셜 이미지 기반 사용 ##
FROM gitlab/gitlab-runner:v13.12.0
## SSHPASS 푸쉬를 위해 설치 ##
RUN apt-get update
RUN apt-get install sshpass
## war파일, 자동화를 위해 MAVEN 설치 및 구성설정 카피 ##
COPY ./maven.tar /usr/local
RUN tar -xvf /usr/local/maven.tar -C /usr/local
## JAVA 자바설치 및 구성설정 카피 ##
COPY ./java.tar /usr/local
RUN tar -xvf /usr/local/java.tar -C /usr/local
## MAVEN, JAVA 환경변수 적용 ##
COPY ./profile /etc/profile
## 변수 적용을 위해 우리 서버에 맞게 따로 스크립트 sh 짜놓음 ##
COPY ./source.sh /home
## gitlab-runner라는 유저로 원격지에 접속을 위해 키 파일을 옮김 ##
COPY ./educo_dev.pem /home/gitlab-runner
RUN chmod 755 /home/gitlab-runner/educo_dev.pem
# 환경변수 적용 스크립트
WORKDIR /home
RUN ./source.sh
'IT > 기타' 카테고리의 다른 글
Kubernetes 내부망 이미지 사용 시 (0) | 2025.02.17 |
---|---|
Kubernetes 설치 (트러블 슈팅 포함) (0) | 2025.02.17 |
Docker (nginx+tomcat+mysql) - 2 (0) | 2025.02.17 |
Docker (nginx+tomcat+mysql) - 3 (0) | 2025.02.17 |
Docker (nginx+tomcat+mysql) - 1 (0) | 2025.02.17 |