Skip to content

Commit

Permalink
Added Docker support (#15)
Browse files Browse the repository at this point in the history
* Added Docker dependency in pom.xml. Added Dockerfile, docker-compose properties, and added .env to gitignore.

* Resolved issues with empty lines
  • Loading branch information
nklimovych authored May 27, 2024
1 parent 6340daa commit 639f08c
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 2 deletions.
16 changes: 16 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Builder stage
FROM openjdk:21-jdk-slim as builder
WORKDIR application
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract

# Final stage
FROM openjdk:21-jdk-slim
WORKDIR application
COPY --from=builder application/dependencies/ ./
COPY --from=builder application/spring-boot-loader/ ./
COPY --from=builder application/snapshot-dependencies/ ./
COPY --from=builder application/application/ ./
ENTRYPOINT ["java", "org.springframework.boot.loader.launch.JarLauncher"]
EXPOSE 8080
34 changes: 34 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
version: "3.8"

services:
mysqldb:
image: mysql:8
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
ports:
- "${MYSQL_LOCAL_PORT}:${MYSQL_DOCKER_PORT}"
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h localhost -P ${MYSQL_DOCKER_PORT} -u ${MYSQL_USER} -p${MYSQL_ROOT_PASSWORD}"]
interval: 30s
timeout: 10s
retries: 3

app:
depends_on:
mysqldb:
condition: service_healthy
image: book-service
build: .
ports:
- "${SPRING_LOCAL_PORT}:${SPRING_DOCKER_PORT}"
- "${DEBUG_PORT}:${DEBUG_PORT}"
environment:
SPRING_APPLICATION_JSON: '{
"spring.datasource.url": "jdbc:mysql://mysqldb:${MYSQL_DOCKER_PORT}/${MYSQL_DATABASE}?serverTimezone=UTC",
"spring.datasource.username": "${MYSQL_USER}",
"spring.datasource.password": "${MYSQL_ROOT_PASSWORD}",
"jwt.secret": "${JWT_SECRET}"
}'
JAVA_TOOL_OPTIONS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005"
5 changes: 4 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,11 @@
<artifactId>jjwt-jackson</artifactId>
<version>0.12.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-docker-compose</artifactId>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ spring.jpa.open-in-view=false

server.servlet.context-path=/api

jwt.expiration=300000
jwt.expiration=30000000
jwt.secret=${JWT_SECRET}

0 comments on commit 639f08c

Please sign in to comment.