Skip to content

Commit 44d2ccc

Browse files
committed
feat: multi platform docker build for all demo services
1 parent 587e3c6 commit 44d2ccc

File tree

11 files changed

+78
-29
lines changed

11 files changed

+78
-29
lines changed

bestseller-fashion/Dockerfile

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
1-
FROM azul/zulu-openjdk-debian:21 AS builder
1+
2+
FROM --platform=$BUILDPLATFORM azul/zulu-openjdk-debian:21 AS builder
3+
ARG BUILDPLATFORM
4+
ARG TARGETPLATFORM
5+
ARG TARGETARCH
6+
ARG TARGETOS
27

38
WORKDIR /application
49
ARG JAR_FILE=target/*.jar
510
COPY ${JAR_FILE} application.jar
611
RUN java -Djarmode=layertools -jar application.jar extract
712

8-
FROM azul/zulu-openjdk-debian:21
13+
FROM --platform=$TARGETPLATFORM azul/zulu-openjdk-debian:21
914
WORKDIR /application
1015

1116
COPY --from=builder /application/dependencies/ ./

bestseller-toys-go/Dockerfile

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Use official Golang image as builder
2-
FROM golang:1.22 AS builder
2+
FROM --platform=$BUILDPLATFORM golang:1.22 AS builder
3+
ARG BUILDPLATFORM
4+
ARG TARGETPLATFORM
5+
ARG TARGETOS
6+
ARG TARGETARCH
7+
ARG TARGETVARIANT
38

49
WORKDIR /app
510

@@ -11,11 +16,11 @@ RUN go mod download
1116
COPY . .
1217

1318
# Build the application with static linking
14-
RUN CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -a -o bestseller-toys main.go
19+
RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -a -o bestseller-toys main.go
1520
RUN make licenses-report
1621

1722
# Use minimal image for deployment
18-
FROM alpine:3.18
23+
FROM --platform=$TARGETPLATFORM alpine:3.18
1924

2025
WORKDIR /app
2126

bestseller-toys/Dockerfile

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
1-
FROM azul/zulu-openjdk-debian:21 AS builder
1+
2+
FROM --platform=$BUILDPLATFORM azul/zulu-openjdk-debian:21 AS builder
3+
ARG BUILDPLATFORM
4+
ARG TARGETPLATFORM
5+
ARG TARGETARCH
6+
ARG TARGETOS
27

38
WORKDIR /application
49
ARG JAR_FILE=target/*.jar
510
COPY ${JAR_FILE} application.jar
611
RUN java -Djarmode=layertools -jar application.jar extract
712

8-
FROM azul/zulu-openjdk-debian:21
13+
FROM --platform=$TARGETPLATFORM azul/zulu-openjdk-debian:21
914
WORKDIR /application
1015

1116
COPY --from=builder /application/dependencies/ ./

checkout-go/Dockerfile

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1-
# Use official Golang image as builder
2-
FROM golang:1.23 AS builder
1+
FROM --platform=$BUILDPLATFORM golang:1.23 AS builder
2+
ARG BUILDPLATFORM
3+
ARG TARGETPLATFORM
4+
ARG TARGETOS
5+
ARG TARGETARCH
6+
ARG TARGETVARIANT
37

48
WORKDIR /app
59

@@ -11,11 +15,11 @@ RUN go mod download
1115
COPY . .
1216

1317
# Build the application with static linking
14-
RUN CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -a -o checkout main.go
18+
RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -a -o checkout main.go
1519
RUN make licenses-report
1620

1721
# Use minimal image for deployment
18-
FROM alpine:3.18
22+
FROM --platform=$TARGETPLATFORM alpine:3.18
1923

2024
WORKDIR /app
2125

checkout/Dockerfile

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1-
FROM azul/zulu-openjdk-debian:21 AS builder
1+
FROM --platform=$BUILDPLATFORM azul/zulu-openjdk-debian:21 AS builder
2+
ARG BUILDPLATFORM
3+
ARG TARGETPLATFORM
4+
ARG TARGETARCH
5+
ARG TARGETOS
26

37
WORKDIR /application
48
ARG JAR_FILE=target/*.jar
59
COPY ${JAR_FILE} application.jar
610
RUN java -Djarmode=layertools -jar application.jar extract
711

8-
FROM azul/zulu-openjdk-debian:21
12+
FROM --platform=$TARGETPLATFORM azul/zulu-openjdk-debian:21
913
WORKDIR /application
1014

1115
COPY --from=builder /application/dependencies/ ./

gateway/Dockerfile

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1-
FROM azul/zulu-openjdk-debian:21 AS builder
1+
FROM --platform=$BUILDPLATFORM azul/zulu-openjdk-debian:21 AS builder
2+
ARG BUILDPLATFORM
3+
ARG TARGETPLATFORM
4+
ARG TARGETARCH
5+
ARG TARGETOS
26

37
WORKDIR /application
48
ARG JAR_FILE=target/*.jar
59
COPY ${JAR_FILE} application.jar
610
RUN java -Djarmode=layertools -jar application.jar extract
711

8-
FROM azul/zulu-openjdk-debian:21
12+
FROM --platform=$TARGETPLATFORM azul/zulu-openjdk-debian:21
913
WORKDIR /application
1014

1115
COPY --from=builder /application/dependencies/ ./

hot-deals/Dockerfile

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1-
FROM azul/zulu-openjdk-debian:21 AS builder
1+
FROM --platform=$BUILDPLATFORM azul/zulu-openjdk-debian:21 AS builder
2+
ARG BUILDPLATFORM
3+
ARG TARGETPLATFORM
4+
ARG TARGETARCH
5+
ARG TARGETOS
26

37
WORKDIR /application
48
ARG JAR_FILE=target/*.jar
59
COPY ${JAR_FILE} application.jar
610
RUN java -Djarmode=layertools -jar application.jar extract
711

8-
FROM gcr.io/distroless/java21-debian12:nonroot
12+
FROM --platform=$TARGETPLATFORM gcr.io/distroless/java21-debian12:nonroot
913
WORKDIR /application
1014

1115
COPY --from=builder /application/dependencies/ ./

inventory-service-mock-go/Dockerfile

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Use official Golang image as builder
2-
FROM golang:1.22 AS builder
2+
FROM --platform=$BUILDPLATFORM golang:1.22 AS builder
3+
ARG BUILDPLATFORM
4+
ARG TARGETPLATFORM
5+
ARG TARGETOS
6+
ARG TARGETARCH
7+
ARG TARGETVARIANT
38

49
WORKDIR /app
510

@@ -11,11 +16,11 @@ RUN go mod download
1116
COPY . .
1217

1318
# Build the application with static linking
14-
RUN CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -a -o inventory-service-mock main.go
19+
RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -a -o inventory-service-mock main.go
1520
RUN make licenses-report
1621

1722
# Use minimal image for deployment
18-
FROM alpine:3.18
23+
FROM --platform=$TARGETPLATFORM alpine:3.18
1924

2025
WORKDIR /app
2126

@@ -27,4 +32,4 @@ RUN chgrp -R 0 /app/inventory-service-mock && chmod -R g=u /app/inventory-servic
2732
EXPOSE 8084
2833

2934
# Run the application
30-
CMD ["./inventory-service-mock"]
35+
CMD ["./inventory-service-mock"]

inventory-service-mock/Dockerfile

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1-
FROM azul/zulu-openjdk-debian:21 AS builder
1+
FROM --platform=$BUILDPLATFORM azul/zulu-openjdk-debian:21 AS builder
2+
ARG BUILDPLATFORM
3+
ARG TARGETPLATFORM
4+
ARG TARGETARCH
5+
ARG TARGETOS
26

37
WORKDIR /application
48
ARG JAR_FILE=target/*.jar
59
COPY ${JAR_FILE} application.jar
610
RUN java -Djarmode=layertools -jar application.jar extract
711

8-
FROM azul/zulu-openjdk-debian:21
12+
FROM --platform=$TARGETPLATFORM azul/zulu-openjdk-debian:21
913
WORKDIR /application
1014

1115
COPY --from=builder /application/dependencies/ ./

order-go/Dockerfile

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Use official Golang image as builder
2-
FROM golang:1.22 AS builder
2+
FROM --platform=$BUILDPLATFORM golang:1.22 AS builder
3+
ARG BUILDPLATFORM
4+
ARG TARGETPLATFORM
5+
ARG TARGETOS
6+
ARG TARGETARCH
7+
ARG TARGETVARIANT
38

49
WORKDIR /app
510

@@ -11,11 +16,11 @@ RUN go mod download
1116
COPY . .
1217

1318
# Build the application with static linking
14-
RUN CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -a -o order main.go
19+
RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -a -o order main.go
1520
RUN make licenses-report
1621

1722
# Use minimal image for deployment
18-
FROM alpine:3.18
23+
FROM --platform=$TARGETPLATFORM alpine:3.18
1924

2025
WORKDIR /app
2126

@@ -27,4 +32,4 @@ RUN chgrp -R 0 /app/order && chmod -R g=u /app/order
2732
EXPOSE 8081
2833

2934
# Run the application
30-
CMD ["./order"]
35+
CMD ["./order"]

0 commit comments

Comments
 (0)