Cloud
[AWS] gitlab,jenkins 설치(docker compose)
조'사장
2022. 7. 19. 12:55
[1] docker , docker compose 설치
$ sudo yum update -y
$ sudo amazon-linux-extras install -y docker
ec2-user 계정에 docker 실행 권한 부여
$ sudo usermod -a -G docker ec2-user
부팅시 docker 자동 실행 --- (잘안되네.. 확인필요)
$ sudo chkconfig docker on
Note: Forwarding request to 'systemctl enable docker.service'.
$ sudo systemctl enable docker.service
docker compose 설치
$ sudo curl -L https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version
docker 실행
$ sudo service docker start
docker 권한 변경
$ sudo chmod 666 /var/run/docker.sock
[2] GitLab, Jenkins 이미지 다운로드 및 설정
GitLab 이미지 다운로드
$ sudo docker pull gitlab/gitlab-ce:latest
Jenkins 이미지 다운로드
$ sudo docker pull jenkins/jenkins:lts
GitLab 이미지 확인
$ sudo docker images
GitLab 바인드 마운트(Bind mount)용 디렉토리 생성
$ sudo mkdir /docker
$ sudo mkdir /docker/gitlab
$ sudo mkdir /docker/gitlab/data
$ sudo mkdir /docker/gitlab/logs
$ sudo mkdir /docker/gitlab/config
GitLab 컨테이너는 호스트 마운트 볼륨을 사용하여 영구 데이터를 저장합니다.
data | /var/opt/gitlab | 애플리케이션 데이터 저장용 |
logs | /var/log/gitlab | 로그 저장용 |
config | /etc/gitlab | GitLab 구성 파일 저장용 |
Jenkins 바인드 마운트(Bind mount)용 디렉토리 생성
$ sudo mkdir /docker/jenkins
바인드 마운트 디렉토리 소유권 및 권한 변경
$ sudo chown -R $USER:$USER /docker
$ sudo chmod -R 755 /docker
[3] docker-compose 설정 및 서비스 실행
docker 작업 디렉토리 생성(docker-compose.yml 저장 될 경로)
$ cd
$ mkdir ./docker
docker-compose.yml 작성
$ cd docker
$ vi docker-compose.yml
services:
gitlab:
image: "gitlab/gitlab-ee:latest"
container_name: gitlab
restart: always
hostname: "IP"
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'IP'
gitlab_rails['gitlab_shell_ssh_port'] = 8022
# Add any other gitlab.rb configuration here, each on its own line
TZ: 'Asia/Seoul'
ports:
- "9080:80"
- "8443:443"
- "8022:22"
volumes:
- "/docker/gitlab/config:/etc/gitlab"
- "/docker/gitlab/logs:/var/log/gitlab"
- "/docker/gitlab/data:/var/opt/gitlab"
deploy:
image: "jenkins/jenkins:lts"
container_name: jenkins
restart: always
ports:
- "8888:8080"
volumes:
- "/docker/jenkins:/var/jenkins_home"
docker-compose로 GitLab,Jenkins 시작
$ docker-compose up -d
[4] GitLab 설정
GitLab root 계정의 초기 패스워드 확인 ( id : root )
$ docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
GitLab 설치 확인 및 접속
http://IP:9080/
GitLab root 패스워드 변경
- GitLab에서 우측 상단에 있는 아바타를 클릭하고 Edit profile을 선택합니다.
- User Settings 페이지의 왼쪽 사이드바에서 Password를 클릭합니다.
- 새 패스워드로 변경합니다.
GitLab SSH Key 등록
https://www.inflearn.com/questions/284025
SSH key 관련 질문 - 인프런 | 질문 & 답변
선생님 안녕하세요! git에 대해 진짜 쉽고 재밌게 잘 가르쳐주셔서 감사합니다 :) 다름이 아니라 한가지 궁금한 점이 있는데, github 에서 SSH key 는 언제 사용하는 것일까용? 강의에서는 다뤄주신
www.inflearn.com
[5] Jenkins 설정
참고 : 2022.07.05 - [Cloud] - AWS EC2에 Jenkins 설치하기(docker)
[참고 1] docker-compose.yml 수정 후 재배포 방법
$ docker-compose up --build --force-recreate -d
- --build: Build images before starting containers -> 변경된 이미지를 다시 build
- --force-recreate: Recreate containers. docker-compose up을 하면 변경된 사항을 적용하여 컨테이너를 재생성하지만 up을 했을때에도 변경이 적용이 안되는 경우에 해당 옵션을 주어보자.
- -d: Run containers in the background
[참고 2] 도커 명령어
[Docker] 도커 이미지와 컨테이너 삭제 방법
도커 이미지는 docker images 명령어로 보면 점점 늘어나는 것을 확인할 수 있다. 이것들은 어떻게 하면 삭제할 수 있는지를 정리했다. 컨테이너 삭제 동작중인 컨테이너 확인 $ docker ps 정지된 컨테
brunch.co.kr
[참고 3] docker-compose
[Docker] docker-compose 로 Gitlab, Jenkins, Redmine, MySql, Nginx, Nexus 실행
여러 개의 컨테이너를 하나로 묶는 개념인 docker-compose 를 사용하면 컨테이너 실행에 필요한 옵션을 docker-compose.yml 이라는 파일에 적어둘 수 있고, 컨테이너 간 실행 순서나 의존성도 관리할 수
a-half-human-half-developer.tistory.com