Skip to content

Commit 91e0e3f

Browse files
Added resources for next blog 'Spring Boot Docker Best Practices'
1 parent ceddff8 commit 91e0e3f

File tree

5 files changed

+74
-0
lines changed

5 files changed

+74
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
FROM eclipse-temurin:17.0.5_8-jre-alpine@sha256:02c04793fa49ad5cd193c961403223755f9209a67894622e05438598b32f210e
2+
WORKDIR /opt/app
3+
RUN addgroup --system javauser && adduser -S -s /usr/sbin/nologin -G javauser javauser
4+
ARG JAR_FILE
5+
COPY target/${JAR_FILE} app.jar
6+
RUN chown -R javauser:javauser .
7+
USER javauser
8+
HEALTHCHECK --interval=30s --timeout=3s --retries=1 CMD wget -qO- http://localhost:8080/actuator/health/ | grep UP || exit 1
9+
ENTRYPOINT ["java", "-jar", "app.jar"]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
FROM maven:3.8.6-eclipse-temurin-17-alpine@sha256:e88c1a981319789d0c00cd508af67a9c46524f177ecc66ca37c107d4c371d23b AS builder
2+
WORKDIR /build
3+
COPY . .
4+
RUN mvn clean package -DskipTests
5+
6+
FROM eclipse-temurin:17.0.5_8-jre-alpine@sha256:02c04793fa49ad5cd193c961403223755f9209a67894622e05438598b32f210e
7+
WORKDIR /opt/app
8+
RUN addgroup --system javauser && adduser -S -s /usr/sbin/nologin -G javauser javauser
9+
COPY --from=builder /build/target/mydockerbestpracticesplanet-0.0.1-SNAPSHOT.jar app.jar
10+
RUN chown -R javauser:javauser .
11+
USER javauser
12+
HEALTHCHECK --interval=30s --timeout=3s --retries=1 CMD wget -qO- http://localhost:8080/actuator/health/ | grep UP || exit 1
13+
ENTRYPOINT ["java", "-jar", "app.jar"]
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
FROM eclipse-temurin:17.0.4.1_1-jre-alpine@sha256:e1506ba20f0cb2af6f23e24c7f8855b417f0b085708acd9b85344a884ba77767 AS builder
2+
WORKDIR application
3+
ARG JAR_FILE
4+
COPY target/${JAR_FILE} app.jar
5+
RUN java -Djarmode=layertools -jar app.jar extract
6+
7+
FROM eclipse-temurin:17.0.4.1_1-jre-alpine@sha256:e1506ba20f0cb2af6f23e24c7f8855b417f0b085708acd9b85344a884ba77767
8+
WORKDIR /opt/app
9+
RUN addgroup --system javauser && adduser -S -s /usr/sbin/nologin -G javauser javauser
10+
COPY --from=builder application/dependencies/ ./
11+
COPY --from=builder application/spring-boot-loader/ ./
12+
COPY --from=builder application/snapshot-dependencies/ ./
13+
COPY --from=builder application/application/ ./
14+
RUN chown -R javauser:javauser .
15+
USER javauser
16+
HEALTHCHECK --interval=30s --timeout=3s --retries=1 CMD wget -qO- http://localhost:8080/actuator/health/ | grep UP || exit 1
17+
ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]

compose.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
services:
2+
dockerbestpractices:
3+
image: mydeveloperplanet/dockerbestpractices:0.0.1-SNAPSHOT
4+
5+
autoheal:
6+
image: willfarrell/autoheal:1.2.0
7+
restart: always
8+
environment:
9+
AUTOHEAL_CONTAINER_LABEL: all
10+
volumes:
11+
- type: bind
12+
source: /var/run/docker.sock
13+
target: /var/run/docker.sock
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.mydeveloperplanet.mydockerbestpracticesplanet;
2+
3+
import org.springframework.boot.actuate.health.Health;
4+
import org.springframework.boot.actuate.health.HealthIndicator;
5+
import org.springframework.stereotype.Component;
6+
7+
@Component
8+
public class DownHealthIndicator implements HealthIndicator {
9+
10+
private int counter;
11+
12+
@Override
13+
public Health health() {
14+
counter++;
15+
Health.Builder status = Health.up();
16+
if (counter == 5) {
17+
status = Health.down();
18+
counter = 0;
19+
}
20+
return status.build();
21+
}
22+
}

0 commit comments

Comments
 (0)