1. docker-compose??
docker-compose를 사용하는 이유는 Docker를 사용하면서 도커 수행 시,
부여해야할 많은 옵션을 docker-compose.yaml 파일로 정리해서 손쉽게 기동할 수 있다는 장점이 있다.
docker-compose up -d
docker-compse down
또는, 프로세스 기동 시, 여러개의 서비스가 같이 기동되어야하는 경우, 한 번의 기동으로 여러 서비스를 같이 기동할 수 있다.
(예를들면 프로세스가 기동될 때, nginx, db를 띄워야하는 경우에 같이 정의하여, 'depends_on:' 설정을 수행할 수 있음)
2. gitlab 버전 업그레이드를 수행한 이유?
보안 이슈로 인해...버전 업그레이드가 필요했다.
3. gitlab 버전 업그레이드별 경로?
gitlab 홈페이지를 방문하면 '현재 버전' -> '희망 버전'으로 업그레이드 시, 어떤 버전을 거쳐야하는지가 명시되어 있다.
(16 버전 -> 16 버전으로 업그레이드하였으므로 저의 경우에는 해당사항 없이 바로 업그레이드)
4. 업그레이드 방법
간단하다. doker-compose.yaml 파일 수정하고, yaml파일내 버전 변경해주면 된다.
version: '3.6'
services:
web:
image: 'gitlab/gitlab-ee:16.7.3-ee.0'
restart: always
hostname: 'gitlab.your-domain.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.your-domain.com'
ports:
- '80:80'
- '443:443'
- '10022:22'
expose:
- 22
volumes:
- '/etc/gitlab:/etc/gitlab'
- '/var/log/gitlab:/var/log/gitlab'
- '/var/opt/gitlab:/var/opt/gitlab'
command: /bin/sh
command: sh -c "apt update && apt-get install locales && localedef -f UTF-8 -i en_US en_US.UTF-8 && /assets/wrapper"
위와 같이 image 행에서 버전 변경해주고, 재기동을 수행해주면 된다.
docker-compose up -d
docker-compse down
해당 작업을 수행해주면 gitlab이 서비스를 다시 올리면서 image 버전을 참고해, 해당버전을 기동하기때문에 git pull 등을 수행할 필요는 없다.
추가로 gitlab 버전에 따라 변경되는 부분이 있다면, gitlab이 기동되고, 백그라운드에서 내부적으로 마이그레이션을 수행하게 된다(gitlab 웹콘솔 접근해보면 나와있음!)
5. docker-compose를 사용하지 않으면?
docker를 다시 기동하면서 필요한 옵션값들을 수동으로 모두 입력해야하고, gitlab의 경우에는 gitlab 하나만 기동하면 되므로 큰 상관은 없지만, 위에서 언급한 사항처럼 여러개 서비스가 기동되어야 한다면 기동 순서에 따라 문제가 발생할 수 있음(ex. db가 기동되기 전에 was가 기동되는 경우 커넥션 에러 발생 가능)