[GCP 원데이] Dockerized 애플리케이션 배포
2021. 4. 23. 13:32ㆍGCP/원데이
1. 개요
- 로컬에서 Dockerfile을 생성해준다.
- 로컬에서 Dockerfile을 빌드하여 이미지를 생성한다.
- 만든 이미지를 DockerHub에 업로드 (push)
- GCP 인스턴스는 DockerHub에서 이미지를 (pull)
- GCP 인스턴스에서 이미지를 실행 (run)
2. Dockerfile
※ Spring Boot Docker 문서의 Containerize It 항목부터 동일하게 진행해준다.
1) Dockerfile 생성
FROM openjdk:8-jdk-alpine
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
2) 빌드
docker build --build-arg JAR_FILE=build/libs/\*.jar -t springio/gs-spring-boot-docker .
여기서 springio는 도커허브의 사용자 이름이 되고 gs-spring-boot-docker는 저장소 이름이 된다.
docker build --build-arg JAR_FILE=build/libs/\*.jar -t ozofweird/spring-boot-cpu-bound .
3) 로컬 테스트
docker run -p 80:80 ozofweird/spring-boot-cpu-bound
기존에는 jar 파일을 직접 실행했으나, 도터 이미지 안에 jar 파일을 실행한 것이다.
4) Docker Hub 업로드
docker push ozofweird/spring-boot-cpu-bound
만약 접근 거부에 대한 내용이 나오면, 도커 허브에 로그인하는 절차를 거쳐야한다.
docker login
3. GCP
1) 인스턴스 생성 및 도커 설치
sudo yum install docker
sudo systemctl start docker
2) GCP 이미지 pull, run
도커 허브에서 이미지를 pull 받아준다.
sudo docker pull ozofweird/spring-boot-cpu-bound
sudo docker run -p 80:80 ozofweird/spring-boot-cpu-bound
3) Artillery
728x90
'GCP > 원데이' 카테고리의 다른 글
[GCP 원데이] 무중단 배포 환경 (로드밸런싱) (0) | 2021.04.23 |
---|---|
[GCP 원데이] Jenkins를 이용한 배포 (0) | 2021.04.23 |
[GCP 원데이] Artillery를 사용한 부하 테스트 (0) | 2021.04.23 |
[GCP 원데이] CPU를 극단적으로 사용하는 애플리케이션 (0) | 2021.04.23 |