build: add Docker and Compose setup
This commit is contained in:
parent
f573ae19d0
commit
85a6f1fbbc
3 changed files with 52 additions and 0 deletions
2
.dockerignore
Normal file
2
.dockerignore
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
.gradle
|
||||
build
|
||||
21
Dockerfile
Normal file
21
Dockerfile
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
FROM eclipse-temurin:21-jdk AS build
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY gradlew ./
|
||||
COPY gradle gradle
|
||||
COPY build.gradle settings.gradle ./
|
||||
COPY src src
|
||||
|
||||
RUN chmod +x gradlew \
|
||||
&& ./gradlew bootJar -x test --no-daemon
|
||||
|
||||
FROM eclipse-temurin:21-jre
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY --from=build /app/build/libs/reservation-demo-*.jar app.jar
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
ENTRYPOINT ["java", "-jar", "app.jar"]
|
||||
29
compose.yml
Normal file
29
compose.yml
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
name: reservation-demo
|
||||
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:8.4
|
||||
container_name: reservation-demo-mysql
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
MYSQL_DATABASE: reservation_demo
|
||||
MYSQL_USER: demo
|
||||
MYSQL_PASSWORD: demo
|
||||
volumes:
|
||||
- reservation-demo-mysql-data:/var/lib/mysql
|
||||
command:
|
||||
- --character-set-server=utf8mb4
|
||||
- --collation-server=utf8mb4_unicode_ci
|
||||
|
||||
app:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: reservation-demo-app
|
||||
ports:
|
||||
- "8080:8080"
|
||||
depends_on:
|
||||
- mysql
|
||||
|
||||
volumes:
|
||||
reservation-demo-mysql-data:
|
||||
Loading…
Add table
Add a link
Reference in a new issue