728x90
반응형
사전 폴더구성
# 계정의 Home Directory로 이동, 경로는 취향대로 선택한다.
cd ~
# 도커 컨테이너 내부에서 사용될 폴더를 마운트 할 폴더생성; -p는 하위경로까지 포함하여 생성한다.
mkdir -p docker/gitlab/data docker/gitlab/logs docker/gitlab/config
# 폴더 권한변경
chmod -R 755 docker/gitlab/data
cd docker/gitlab
Docker-Compose.yml 생성
vi docker-compose.yml
아래 스크립트를 vi 에디터를 이용해 파일을 생성한다.
- 아래 스크립트를 복사한다.
- vi 에디터에서 키보드 I(아이)를 누르면 입력상태로 변경된다.
- 키보드 Shift+Insert를 누르면 복사된 스크립트가 붙여진다.
- 키보드 콜론+wq(:wq) 타이핑하면 파일저장되면서 vi에디터에서 빠져나온다.
version: '3.9'
services:
gitlab:
image: "gitlab/gitlab-ee:latest"
container_name: gitlab
restart: always
hostname: "[서비스할 아이피]"
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://[서비스할 아이피]'
gitlab_rails['gitlab_shell_ssh_port'] = [서비스할 SSH포트]
#nginx['redirect_http_to_https'] = true
#nginx['rdirect_http_to_https_port'] = true
# Add any other gitlab.rb configuration here, each on its own line
TZ: 'Asia/Seoul'
ports:
- "[서비스할 http포트]:80"
- "[서비스할 https포트]:443"
- "[서비스할 SSH포트]:22"
volumes:
- "./config:/etc/gitlab"
- "./logs:/var/log/gitlab"
- "./data:/var/opt/gitlab"
- 서비스 할 아이피: Docker가 설치된 호스트의 IP를 입력한다.
- 서비스 할 SSH포트: Gitlab에서 Pull/Push를 할 때 계정인증을 하는데 이때 사용되는 프로토콜로 ssh와 http 또는 https를 사용한다. 이 때 ssh에서 사용할 포트를 입력한다. 보통 개발자는 ssh를 많이 사용한다. 인증서를 이용하기 때문에 pull/push할 때마다 따로 ID와 패스워드를 입력할 필요가 없다.
- 서비스 할 http/https포트: http 또는 https로 인증할 경우에 사용되는 포트다. 설정이 안되어 있는 환경에서는 매번 아이디와 패스워드를 입력해야 한다.
도커 컨테이너 제어
# 컨테이너 시작; -d는 데몬형태로 띄우겠다는 옵션이다.
# 이것을 입력하지 않으면 바로 컨테이너 로그가 표시되는데
# 거기서 나오면(Ctrl+C) 컨테이너가 종료된다.
docker-compose up -d
# ----------- Docker 많이 사용하는 명령어 ----------
# 컨테이너 동작확인
docker ps -a
# 컨테이너 로그확인
docker logs -f [컨테이너 ID 또는 이름]
# 컨테이너 내부 쉘 진입; 맨 뒤에 bash는 컨테이너 내부에서 사용하는 쉘을 입력하면 된다.
# 만약 Alpine 같은 리눅스의 경우 Ash쉘을 사용하기 때문에 bash대신 /bin/ash를 입력하자.
docker exec -it [컨테이너 ID 또는 이름] bash
# -----------------------------------------
# 컨테이너 재시작; 현재 컨테이너기반으로 재시작한다.
# 만약 컨테이너가 돌고 있는 중에 컨테이너에 들어가서 파일을 몇개를 수정했다고 치자.
# 컨테이너 재시작은 수정된 이후 시점에서 재시작이 된다.
# 만약 아래 설명할 Down(완전종료)을 시키면 실행 중 수정된 파일은 원복된다.
docker-compose restart
# 컨테이너 종료
docker-compose down
Gitlab 동작확인
Gitlab은 부팅이 좀 걸린다. 약 3~5분 내/외.
웹브라우저에서 "http://[서비스할 아이피]:[서비스 할 http포트]"로 접속한다.
부팅이 완료되면 계정생성 부터하는데 이때 생성되는 계정이 시스템 관리자가 된다.
반응형
'써드파티 도구 > Linux(Ubuntu)' 카테고리의 다른 글
Ubuntu에서 윈도우 네트워크 공유 폴더 마운트 방법 (0) | 2024.04.16 |
---|---|
Ubuntu Linux에 Node설치 (0) | 2023.04.06 |
Ubuntu Linux에 Docker 설치 (0) | 2023.03.24 |
VirtualBox에 Ubuntu Linux설치 (0) | 2023.03.17 |