From 4bfc01400637ecfc901914c081f75d466cf29f41 Mon Sep 17 00:00:00 2001 From: wintiger98 <78953151+wintiger98@users.noreply.github.com> Date: Thu, 21 Mar 2024 20:42:15 +0900 Subject: [PATCH] Create Dockerfile #18 --- Dockerfile | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..22da155 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,39 @@ +# 베이스 이미지로 Ubuntu 20.04.2 LTS 사용 +FROM ubuntu:20.04 + +# 비대화면 패키지 설치 중 사용자 입력 대기를 방지 +ARG DEBIAN_FRONTEND=noninteractive + +# Java 17 설치를 위한 PPA 추가 및 패키지 설치 +RUN apt-get update && apt-get install -y \ + software-properties-common \ + && add-apt-repository -y ppa:openjdk-r/ppa \ + && apt-get update \ + && apt-get install -y \ + openjdk-17-jdk \ + maven \ + git \ + mysql-server \ + && rm -rf /var/lib/apt/lists/* + +# MySQL 설정 (주의: 실제 프로덕션 환경에서는 보안을 강화해야 합니다.) +RUN service mysql start && \ + mysql -e "CREATE DATABASE IF NOT EXISTS mydb;" && \ + mysql -e "CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';" && \ + mysql -e "GRANT ALL PRIVILEGES ON mydb.* TO 'user'@'localhost';" && \ + mysql -e "FLUSH PRIVILEGES;" + +# 작업 디렉토리 설정 +WORKDIR /app + +# 애플리케이션 소스 추가 +COPY . /app + +# Maven을 사용하여 애플리케이션 빌드 +RUN mvn clean package + +# 애플리케이션 실행 +CMD ["java", "-jar", "target/myapp-0.0.1-SNAPSHOT.jar"] + +# 포트 열기 +EXPOSE 8080