도커 GitLab 사용, 도커파일 생성 & 빌드 (ubuntu 환경)

2025. 1. 22. 23:21MEMO

 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