이제, 클라우드의 설정을 마쳤으니 이번에는 프로젝트를 컨테이너화 시키기 위해 프로젝트의 Docker설정이 필요하다.
우선, 자신이 원하는 경로에 맞춰 Docker 파일을 생성시켜주어야 하는데, 필자같은 경우에는 다음과 같은 경로로 설정했다.

그리고서는 Docker파일 및 sql설정을 위한 docker-compose.yml를 작성해주자.
Dockerfile
FROM ubuntu:latest
LABEL authors="autohrs"
ENTRYPOINT ["top", "-b"]
# OpenJDK 17을 기반으로 사용
FROM openjdk:17
# 작업 디렉터리 설정
WORKDIR /app
# 현재 프로젝트의 JAR 파일을 컨테이너로 복사
COPY build/libs/*.jar app.jar
# 8080 포트 노출
EXPOSE 8080
# 컨테이너에서 실행할 명령어
CMD ["java", "-jar", "app.jar"]
docker-compose.yml
version: '3.8'
services:
db:
image: mysql:latest
container_name: mysql_db
restart: always
environment:
MYSQL_DATABASE: book_manage
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: rootpassword
ports:
- "3307:3306"
networks:
- app-network
app:
image: bookmanage-spring-app:latest
build: .
container_name: spring_app
restart: always
depends_on:
- db
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://ip주소/인스턴스ID?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
SPRING_DATASOURCE_USERNAME: username
SPRING_DATASOURCE_PASSWORD: password
ports:
- "8080:8080"
networks:
- app-network
networks:
app-network:
username과 password같은 설정은 이전에 sqlcloud에서 설정한대로 가져오면되며, 포트번호같은경우에는 3306:3306으로 할시 중복되는 상황이 나와 3307:3306으로 해두었다.
Spring_datasource_url과 같은 경우에는 이전에 만들어두었던 sql인스턴스에서 가져와줘야한다.


후에는 application.properties에도 sqlcloud의 설정과 맞춰 변경시켜주자.
spring.datasource.url=jdbc:mysql://ip주소/인스턴스ID?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=username
spring.datasource.password=rootpassword
이제, 프로젝트를 컨테이너화할 차례인데 우선, 다음과 같은 명령어를 터미널에 입력하여 .jar파일을 만들어야한다.
./gradlew build
jar파일이 생성되면 다음과 같은 명령어를 통해 프로젝트를 컨테이너화 시켜주자.
docker-compose up --build -d
그리고, gcloud에 올릴 수 있도록 다음과 같은 명령어로 컨테이너에 태그를 지정하면 마무리다.
docker tag 컨테이너명 gcr.io/클라우드 인스턴스 ID/컨테이너명:latest
*클라우드 sql연동 참조 블로그*
https://velog.io/@alstjsdlr0321/Spring-Boot-GCP-Cloud-SQL-DB-%EC%97%B0%EB%8F%99
'클라우드' 카테고리의 다른 글
| 자바스프링 프로젝트 컨테이너화 및 배포하기 #3 배포하기 (0) | 2025.04.10 |
|---|---|
| 자바스프링 프로젝트 컨테이너화 및 배포하기 #1 클라우드 설정 (0) | 2025.04.10 |
| 가비아 클라우드를 통해 배포하기 # 5 https 등록하기 (0) | 2024.10.31 |
| 가비아 클라우드를 통해 배포하기 # 4 스프링 프로젝트 실행하기 (0) | 2024.10.30 |
| 가비아 클라우드를 통해 배포하기 # 3 스프링 .jar파일 클라우드 등록 (0) | 2024.10.30 |