gitlab, docker

방지환·2024년 10월 23일

정리

목록 보기
4/5

gitlab ssh키 등록

  • ssh-keygen -t rsa
  • cd .ssh
  • cat id_rsa_pub 안에 값 복사
  • gitlab add ssh key 클릭 후 Add new key버튼 클릭

Dockerfile

FROM python:3.9-slim  -- baseImage
WORKDIR /opt/app   -- 작업디렉토리
COPY . /opt/app   -- 현재 경로에서 /opt/app로 파일 복사
RUN pip install -r requirements.txt -- 컨테이너 안에서 명령어 실행 의존성 설치
CMD ["python3", "app.py"] -- 컨테이너 CMD 명령어 실행

build

docker build -t 원하는명칭:버전 . -- .은 현재 경로의 Dockerfile 있는 곳

도커 이미지 저장소에 push

gitlab runner설치

gitlab 자동 실행

  • sudo su - : 시스템계정 로그인
  • cd /etc/systemd/system
  • vi gitlab-runner.service
  • ExecStart값 변경
  • cd ~ 루트 디렉토리로 이동
  • vi .bash_logout 안에 값들 주석
  • sudo systemctl daemon-reload
  • sudo systemctl restart gitlab-runner
  • sudo systemctl enable gitlab-runner

Dockerfile

FROM gradle:7.6.0-jdk17 AS build

# 2. 컨테이너 내 작업 디렉토리 설정
WORKDIR /app

# 3. 로컬 프로젝트의 모든 파일을 컨테이너에 복사
COPY . .

# 4. Gradle을 사용하여 프로젝트 빌드 (./gradlew clean build 명령 실행)
RUN gradle clean build --no-daemon

# 5. OpenJDK 이미지를 사용하여 빌드된 애플리케이션을 실행할 준비
FROM openjdk:17-jdk-alpine

# 6. 실행 단계에서 사용할 작업 디렉토리 설정
WORKDIR /app

# 7. Gradle 빌드 단계에서 생성된 JAR 파일을 실행 환경으로 복사
COPY --from=build /app/build/libs/*.jar app.jar

# 8. 애플리케이션이 실행될 포트 설정 (Spring Boot 기본 포트: 8080)
EXPOSE 8080

# 9. 빌드된 JAR 파일을 실행 (Spring Boot 애플리케이션 실행)
ENTRYPOINT ["java", "-jar", "app.jar"]  

Makefile

PRJ_NAME=docker/study-app
ECR_URI=940482432505.dkr.ecr.ap-northeast-2.amazonaws.com
VERSION=$(shell git rev-parse --short HEAD)

build:
        docker build -t $(PRJ_NAME):$(VERSION) .

push:
        aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin $(ECR_URI)
        docker tag $(PRJ_NAME):$(VERSION) $(ECR_URI)/$(PRJ_NAME):$(VERSION)
        docker tag $(PRJ_NAME):$(VERSION) $(ECR_URI)/$(PRJ_NAME):latest
        docker push $(ECR_URI)/$(PRJ_NAME):$(VERSION)
        docker push $(ECR_URI)/$(PRJ_NAME):latest

Amazon Elastic Container Registry 이미지 푸쉬 확인

docker pull, 이미지 실행

  • docker pull 940482432505.dkr.ecr.ap-northeast-2.amazonaws.com/docker/study-app:64e31d4
  • docker images 에서 name이나 id 확인
  • docker run -d -p 8080:8080 --name study-container ad58627c61dd(여기는 name이나 id부분)

0개의 댓글