2025. 1. 22. 23:21ㆍMEMO
✅ GitLab ?
세계에서 가장 널리 사용하는 CI / CD 툴 중 하나로, GitLab으로 프로젝트를 만들고 Git 기반으로 소스코드를 관리하고 Docker 애플리케이션을 빌드하게 된다.
이렇게 빌드한 애플리케이션을 AWS의 Docker Image 저장소인 ECR에 Push하여 AWS에 배포하기 위한 준비를 마치게 된다.
git + cicd + 일감관리( issue )
✅ CI 과정
: plan -> code -> build -> test -> release -> deploy
에서 code~ deploy까지만 다룰듯
✅ GitLab 이용 설명
manage => user 관리
plan => 일정 관리
code => code 관리
build => cicd 파이프라인 관리
pipeline : build -> test -> deploy. 현재 cicd가 어느상태에 있는지 모니터링
pipeline editor : 파이프라인 설계
( 회사마다 파이프라인이 다르기 때문에 그 환경에 맞게 설계를 해야한다.)
✅ ssh key 등록 방법
( 프라이빗 저장소를 만들고 clone을 하기 위해서는 ssh 키가 필요하다. )
터미널에 ssh-keygen -t rsa 를 입력하여 ssh key 만들기
ssh 키로 이동하여 cat id_rsa.pub 입력후 문자열 복사
add SSH key -> Add new key -> Key 입력칸에 붙여넣기
SSH key를 넣는곳에 Key 라는 빈칸에 붙여넣기
이 ssh key로 인해 git에 접근할 수 있는 권한(clone 수행 등)을 얻게됌
이제 이 key를 가지고 clone을 할 예정
✅ 파일 하나 만들어보기
rm -r = 삭제
mkdir = 생성
test.txt 파일로 가서 작성할 때
vi test.txt
i 누르고 글자 쓰기
esc 누른후 :qa
✅ 프로젝트 코드 작업 순서
1단계 : 그룹 생성 -> 프로젝트 생성 -> 소스코드 작성, docker file , makefile
•docker file : docker image를 만들기 위한 여러가지 사양들과 명령어들이 들어가 있는 파일
• makefile : 빌드를 도와주기 위한 tool
2단계 : aws cloud 위에 ECR(도커 이미지 저장소) 생성 -> 1단계에서 빌드된 Docker Image를 ECR에 push -> Docker Container 실행
1단계를 실행하기 위해 group을 만들어준다 (그룹 생성)
그룹 만들고 -> new project (프로젝트 생성) 하면 새로운 레파지토리가 생긴다
code . 을 하고 파일로 들어가 app.py에 대한 내용을 넣는다
실행할때는 항상 가상 서버로 들어가서 실행을 해야한다
python3 -m venv myenv
source myenv/bin/activate
pip install -r requirements.txt ## 패키지 설치
deactivate ##완전히 끝낼 때
Dockerfile (도커파일 만들기)
[ 내용설명 ]
• Dockerfile - Docker Image를 만들기 위한 여러가지 사양들과 명령어들이 들어가 있는 파일
• From - base image 어떤 이미지로 바탕을 만들겠다. 파이썬환경이 설정되어 있는 이미지 위에 파일을 만들겠다.
• WORKDIR - 컨터이너가 실행되고 나서 작업 디렉토리
• COPY - . (모든 파일을) /opt/app (실행할 워크디렉토리안에 복사한다)
• RUN - 명령어 실행하라 -> 의존성이 담긴 txt 파일 설치
• CMD - 컨테이너가 실행되었을 때 실행할 명령어
도커 이미지 빌드
docker build -t sparta/test-app:0.1 하면 빌드가 진행됌
이미지 확인하기 위해
docker images 입력
컨테이너 실행
docker run --name test-app -p 5000:5000 sparta/test-app:0.1
0.1을 작성하는 이유는 ? => 0.1을 넣지 않으면 기본 태그인 latest가 붙은 이미지를 찾게 되는 데 현재 test-app에 대해선 lastest가 붙은 이미지가 없기 때문에 실패하게 됨. 그래서 명확하게 0.1 을 작성해준다.
'MEMO' 카테고리의 다른 글
Linux 핵심 명령어 (0) | 2025.01.15 |
---|---|
sort? (0) | 2024.04.24 |