Skip to content

Commit 6da67af

Browse files
committed
fix(docker): resolve build context and Maven module resolution issues
1 parent c691e06 commit 6da67af

9 files changed

Lines changed: 121 additions & 59 deletions

File tree

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
FROM maven:3.9.12-eclipse-temurin-21-noble AS builder
2-
WORKDIR /app
2+
WORKDIR /workspace
33

44
COPY pom.xml pom.xml
5-
COPY src src
5+
COPY domain-contracts domain-contracts
6+
COPY spring-boot-3 spring-boot-3
67

78
RUN --mount=type=cache,target=/root/.m2,sharing=locked \
8-
mvn -q -T 2C -DskipTests --no-transfer-progress clean package && \
9-
JAR="$(ls -1 target/customer-service-consumer-*.jar | head -n 1)" && \
10-
java -Djarmode=layertools -jar "$JAR" extract
9+
mvn -f spring-boot-3/pom.xml -U -q -T 2C -DskipTests --no-transfer-progress \
10+
-pl customer-service-consumer -am clean package && \
11+
JAR="$(ls -1 spring-boot-3/customer-service-consumer/target/customer-service-consumer-*.jar | head -n 1)" && \
12+
mkdir -p /layers && \
13+
cd /layers && \
14+
java -Djarmode=layertools -jar "/workspace/$JAR" extract
1115

1216
FROM eclipse-temurin:21.0.10_7-jre-noble
1317
WORKDIR /app
@@ -21,15 +25,15 @@ LABEL org.opencontainers.image.title="customer-service-consumer-sb3" \
2125
org.opencontainers.image.source="https://github.com/blueprint-platform/openapi-generics" \
2226
org.opencontainers.image.licenses="MIT"
2327

24-
COPY --from=builder --chown=10001:0 /app/dependencies/ ./
25-
COPY --from=builder --chown=10001:0 /app/snapshot-dependencies/ ./
26-
COPY --from=builder --chown=10001:0 /app/spring-boot-loader/ ./
27-
COPY --from=builder --chown=10001:0 /app/application/ ./
28+
COPY --from=builder --chown=10001:0 /layers/dependencies/ ./
29+
COPY --from=builder --chown=10001:0 /layers/snapshot-dependencies/ ./
30+
COPY --from=builder --chown=10001:0 /layers/spring-boot-loader/ ./
31+
COPY --from=builder --chown=10001:0 /layers/application/ ./
2832

2933
USER 10001
3034

31-
ENV SPRING_PROFILES_ACTIVE=default \
32-
JAVA_TOOL_OPTIONS="-XX:MaxRAMPercentage=75 -XX:+UseG1GC -Dfile.encoding=UTF-8"
35+
ENV SPRING_PROFILES_ACTIVE=default
36+
ENV JAVA_TOOL_OPTIONS="-XX:MaxRAMPercentage=75 -XX:+UseG1GC -Dfile.encoding=UTF-8"
3337

3438
EXPOSE 8085
3539
ENTRYPOINT ["java","org.springframework.boot.loader.launch.JarLauncher"]

samples/spring-boot-3/customer-service-consumer/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108
<groupId>org.springframework.boot</groupId>
109109
<artifactId>spring-boot-maven-plugin</artifactId>
110110
<configuration>
111-
<mainClass>io.github.blueprintplatform.samples.customerservice.consumer.io.github.blueprintplatform.samples.customerservice.consumer.CustomerServiceConsumerApplication</mainClass>
111+
<mainClass>io.github.blueprintplatform.samples.customerservice.consumer.CustomerServiceConsumerApplication</mainClass>
112112
<layers>
113113
<enabled>true</enabled>
114114
</layers>
Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
FROM maven:3.9.12-eclipse-temurin-21-noble AS builder
2-
WORKDIR /app
2+
WORKDIR /workspace
33

44
COPY pom.xml pom.xml
5-
COPY src src
5+
COPY domain-contracts domain-contracts
6+
COPY spring-boot-3 spring-boot-3
67

78
RUN --mount=type=cache,target=/root/.m2,sharing=locked \
8-
mvn -q -T 2C -DskipTests --no-transfer-progress clean package && \
9-
JAR="$(ls -1 target/customer-service-*.jar | head -n 1)" && \
10-
java -Djarmode=layertools -jar "$JAR" extract
9+
mvn -f spring-boot-3/pom.xml -U -q -T 2C -DskipTests --no-transfer-progress \
10+
-pl customer-service -am clean package && \
11+
JAR="$(ls -1 spring-boot-3/customer-service/target/customer-service-*.jar | head -n 1)" && \
12+
mkdir -p /layers && \
13+
cd /layers && \
14+
java -Djarmode=layertools -jar "/workspace/$JAR" extract
1115

1216
FROM eclipse-temurin:21.0.10_7-jre-noble
1317
WORKDIR /app
@@ -21,15 +25,15 @@ LABEL org.opencontainers.image.title="customer-service-sb3" \
2125
org.opencontainers.image.source="https://github.com/blueprint-platform/openapi-generics" \
2226
org.opencontainers.image.licenses="MIT"
2327

24-
COPY --from=builder --chown=10001:0 /app/dependencies/ ./
25-
COPY --from=builder --chown=10001:0 /app/snapshot-dependencies/ ./
26-
COPY --from=builder --chown=10001:0 /app/spring-boot-loader/ ./
27-
COPY --from=builder --chown=10001:0 /app/application/ ./
28+
COPY --from=builder --chown=10001:0 /layers/dependencies/ ./
29+
COPY --from=builder --chown=10001:0 /layers/snapshot-dependencies/ ./
30+
COPY --from=builder --chown=10001:0 /layers/spring-boot-loader/ ./
31+
COPY --from=builder --chown=10001:0 /layers/application/ ./
2832

2933
USER 10001
3034

31-
ENV SPRING_PROFILES_ACTIVE=default \
32-
JAVA_TOOL_OPTIONS="-XX:MaxRAMPercentage=75 -XX:+UseG1GC -Dfile.encoding=UTF-8"
35+
ENV SPRING_PROFILES_ACTIVE=default
36+
ENV JAVA_TOOL_OPTIONS="-XX:MaxRAMPercentage=75 -XX:+UseG1GC -Dfile.encoding=UTF-8"
3337

3438
EXPOSE 8084
3539
ENTRYPOINT ["java","org.springframework.boot.loader.launch.JarLauncher"]

samples/spring-boot-3/docker-compose.yml

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,28 @@ services:
22
customer-service:
33
container_name: customer-service-sb3
44
build:
5-
context: ./customer-service
6-
dockerfile: Dockerfile
5+
context: ..
6+
dockerfile: spring-boot-3/customer-service/Dockerfile
77
image: customer-service-sb3:latest
88
restart: on-failure
99
environment:
1010
APP_PORT: ${APP_PORT:-8084}
1111
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-local}
12-
JAVA_OPTS: ${JAVA_OPTS:-}
1312
ports:
1413
- "${APP_PORT:-8084}:${APP_PORT:-8084}"
1514

1615
customer-service-consumer:
1716
container_name: customer-service-consumer-sb3
1817
build:
19-
context: ./customer-service-consumer
20-
dockerfile: Dockerfile
18+
context: ..
19+
dockerfile: spring-boot-3/customer-service-consumer/Dockerfile
2120
image: customer-service-consumer-sb3:latest
2221
restart: on-failure
2322
depends_on:
2423
- customer-service
2524
environment:
2625
APP_PORT: ${CONSUMER_APP_PORT:-8085}
2726
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-local}
28-
CUSTOMER_API_BASE_URL: http://customer-service-sb3:8084/customer-service
29-
JAVA_OPTS: ${JAVA_OPTS:-}
27+
CUSTOMER_API_BASE_URL: "http://customer-service-sb3:8084/customer-service"
3028
ports:
3129
- "${CONSUMER_APP_PORT:-8085}:${CONSUMER_APP_PORT:-8085}"

samples/spring-boot-3/pom.xml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
4+
https://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
6+
<modelVersion>4.0.0</modelVersion>
7+
8+
<parent>
9+
<groupId>io.github.blueprint-platform.samples</groupId>
10+
<artifactId>samples</artifactId>
11+
<version>0.9.0</version>
12+
<relativePath>../pom.xml</relativePath>
13+
</parent>
14+
15+
<artifactId>spring-boot-3-stack</artifactId>
16+
<packaging>pom</packaging>
17+
18+
<modules>
19+
<module>../domain-contracts</module>
20+
<module>customer-service</module>
21+
<module>customer-service-client</module>
22+
<module>customer-service-consumer</module>
23+
</modules>
24+
25+
</project>
Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
FROM maven:3.9.12-eclipse-temurin-21-noble AS builder
2-
WORKDIR /app
2+
WORKDIR /workspace
33

44
COPY pom.xml pom.xml
5-
COPY src src
5+
COPY domain-contracts domain-contracts
6+
COPY spring-boot-4 spring-boot-4
67

78
RUN --mount=type=cache,target=/root/.m2,sharing=locked \
8-
mvn -q -T 2C -DskipTests --no-transfer-progress clean package && \
9-
JAR="$(ls -1 target/customer-service-consumer-*.jar | head -n 1)" && \
10-
java -Djarmode=layertools -jar "$JAR" extract
9+
mvn -f spring-boot-4/pom.xml -U -q -T 2C -DskipTests --no-transfer-progress \
10+
-pl customer-service-consumer -am clean package && \
11+
JAR="$(ls -1 spring-boot-4/customer-service-consumer/target/customer-service-consumer-*.jar | head -n 1)" && \
12+
mkdir -p /layers && \
13+
cd /layers && \
14+
java -Djarmode=layertools -jar "/workspace/$JAR" extract
1115

1216
FROM eclipse-temurin:21.0.10_7-jre-noble
1317
WORKDIR /app
@@ -21,15 +25,15 @@ LABEL org.opencontainers.image.title="customer-service-consumer-sb4" \
2125
org.opencontainers.image.source="https://github.com/blueprint-platform/openapi-generics" \
2226
org.opencontainers.image.licenses="MIT"
2327

24-
COPY --from=builder --chown=10001:0 /app/dependencies/ ./
25-
COPY --from=builder --chown=10001:0 /app/snapshot-dependencies/ ./
26-
COPY --from=builder --chown=10001:0 /app/spring-boot-loader/ ./
27-
COPY --from=builder --chown=10001:0 /app/application/ ./
28+
COPY --from=builder --chown=10001:0 /layers/dependencies/ ./
29+
COPY --from=builder --chown=10001:0 /layers/snapshot-dependencies/ ./
30+
COPY --from=builder --chown=10001:0 /layers/spring-boot-loader/ ./
31+
COPY --from=builder --chown=10001:0 /layers/application/ ./
2832

2933
USER 10001
3034

31-
ENV SPRING_PROFILES_ACTIVE=default \
32-
JAVA_TOOL_OPTIONS="-XX:MaxRAMPercentage=75 -XX:+UseG1GC -Dfile.encoding=UTF-8"
35+
ENV SPRING_PROFILES_ACTIVE=default
36+
ENV JAVA_TOOL_OPTIONS="-XX:MaxRAMPercentage=75 -XX:+UseG1GC -Dfile.encoding=UTF-8"
3337

3438
EXPOSE 8095
3539
ENTRYPOINT ["java","org.springframework.boot.loader.launch.JarLauncher"]
Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
FROM maven:3.9.12-eclipse-temurin-21-noble AS builder
2-
WORKDIR /app
2+
WORKDIR /workspace
33

44
COPY pom.xml pom.xml
5-
COPY src src
5+
COPY domain-contracts domain-contracts
6+
COPY spring-boot-4 spring-boot-4
67

78
RUN --mount=type=cache,target=/root/.m2,sharing=locked \
8-
mvn -q -T 2C -DskipTests --no-transfer-progress clean package && \
9-
JAR="$(ls -1 target/customer-service-*.jar | head -n 1)" && \
10-
java -Djarmode=layertools -jar "$JAR" extract
9+
mvn -f spring-boot-4/pom.xml -U -q -T 2C -DskipTests --no-transfer-progress \
10+
-pl customer-service -am clean package && \
11+
JAR="$(ls -1 spring-boot-4/customer-service/target/customer-service-*.jar | head -n 1)" && \
12+
mkdir -p /layers && \
13+
cd /layers && \
14+
java -Djarmode=layertools -jar "/workspace/$JAR" extract
1115

1216
FROM eclipse-temurin:21.0.10_7-jre-noble
1317
WORKDIR /app
@@ -21,15 +25,15 @@ LABEL org.opencontainers.image.title="customer-service-sb4" \
2125
org.opencontainers.image.source="https://github.com/blueprint-platform/openapi-generics" \
2226
org.opencontainers.image.licenses="MIT"
2327

24-
COPY --from=builder --chown=10001:0 /app/dependencies/ ./
25-
COPY --from=builder --chown=10001:0 /app/snapshot-dependencies/ ./
26-
COPY --from=builder --chown=10001:0 /app/spring-boot-loader/ ./
27-
COPY --from=builder --chown=10001:0 /app/application/ ./
28+
COPY --from=builder --chown=10001:0 /layers/dependencies/ ./
29+
COPY --from=builder --chown=10001:0 /layers/snapshot-dependencies/ ./
30+
COPY --from=builder --chown=10001:0 /layers/spring-boot-loader/ ./
31+
COPY --from=builder --chown=10001:0 /layers/application/ ./
2832

2933
USER 10001
3034

31-
ENV SPRING_PROFILES_ACTIVE=default \
32-
JAVA_TOOL_OPTIONS="-XX:MaxRAMPercentage=75 -XX:+UseG1GC -Dfile.encoding=UTF-8"
35+
ENV SPRING_PROFILES_ACTIVE=default
36+
ENV JAVA_TOOL_OPTIONS="-XX:MaxRAMPercentage=75 -XX:+UseG1GC -Dfile.encoding=UTF-8"
3337

3438
EXPOSE 8094
3539
ENTRYPOINT ["java","org.springframework.boot.loader.launch.JarLauncher"]

samples/spring-boot-4/docker-compose.yml

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,28 @@ services:
22
customer-service:
33
container_name: customer-service-sb4
44
build:
5-
context: ./customer-service
6-
dockerfile: Dockerfile
5+
context: ..
6+
dockerfile: spring-boot-4/customer-service/Dockerfile
77
image: customer-service-sb4:latest
88
restart: on-failure
99
environment:
1010
APP_PORT: ${APP_PORT:-8094}
1111
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-local}
12-
JAVA_OPTS: ${JAVA_OPTS:-}
1312
ports:
1413
- "${APP_PORT:-8094}:${APP_PORT:-8094}"
1514

1615
customer-service-consumer:
1716
container_name: customer-service-consumer-sb4
1817
build:
19-
context: ./customer-service-consumer
20-
dockerfile: Dockerfile
18+
context: ..
19+
dockerfile: spring-boot-4/customer-service-consumer/Dockerfile
2120
image: customer-service-consumer-sb4:latest
2221
restart: on-failure
2322
depends_on:
2423
- customer-service
2524
environment:
2625
APP_PORT: ${CONSUMER_APP_PORT:-8095}
2726
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-local}
28-
CUSTOMER_API_BASE_URL: http://customer-service-sb4:8094/customer-service
29-
JAVA_OPTS: ${JAVA_OPTS:-}
27+
CUSTOMER_API_BASE_URL: "http://customer-service-sb4:8094/customer-service"
3028
ports:
3129
- "${CONSUMER_APP_PORT:-8095}:${CONSUMER_APP_PORT:-8095}"

samples/spring-boot-4/pom.xml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
4+
https://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
6+
<modelVersion>4.0.0</modelVersion>
7+
8+
<parent>
9+
<groupId>io.github.blueprint-platform.samples</groupId>
10+
<artifactId>samples</artifactId>
11+
<version>0.9.0</version>
12+
<relativePath>../pom.xml</relativePath>
13+
</parent>
14+
15+
<artifactId>spring-boot-4-stack</artifactId>
16+
<packaging>pom</packaging>
17+
18+
<modules>
19+
<module>../domain-contracts</module>
20+
<module>customer-service</module>
21+
<module>customer-service-client</module>
22+
<module>customer-service-consumer</module>
23+
</modules>
24+
25+
</project>

0 commit comments

Comments
 (0)