Skip to content

Commit

Permalink
fix: multi-architecture builds (#142)
Browse files Browse the repository at this point in the history
  • Loading branch information
ayildirim21 authored Aug 20, 2024
1 parent d41d11a commit b559600
Show file tree
Hide file tree
Showing 66 changed files with 227 additions and 143 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/build-push.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ jobs:
"pkg/sourcer/examples/simple_source", "pkg/sourcetransformer/examples/assign_event_time", "pkg/sourcetransformer/examples/event_time_filter",
"pkg/sinker/examples/fallback", "pkg/sideinput/examples/map_sideinput", "pkg/sideinput/examples/reduce_sideinput",
"pkg/sideinput/examples/sideinput_function", "pkg/sideinput/examples/simple_source_with_sideinput",
"pkg/sideinput/examples/sink_sideinput", "pkg/sinker/examples/redis-sink", "pkg/sideinput/examples/map_sideinput/udf",
"pkg/sideinput/examples/reduce_sideinput/udf", "pkg/batchmapper/examples/batchmap-flatmap"
"pkg/sideinput/examples/sink_sideinput", "pkg/sinker/examples/redis_sink", "pkg/sideinput/examples/map_sideinput/udf",
"pkg/sideinput/examples/reduce_sideinput/udf", "pkg/batchmapper/examples/batchmap_flatmap"
]

steps:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
####################################################################################################
# base
####################################################################################################
FROM alpine:3.12.3 as base
FROM alpine:3.20 AS base
ARG TARGETARCH
RUN apk update && apk upgrade && \
apk add ca-certificates && \
apk --no-cache add tzdata

COPY dist/batchmap-flatmap /bin/batchmap-flatmap
COPY dist/batchmap-flatmap-${TARGETARCH} /bin/batchmap-flatmap
RUN chmod +x /bin/batchmap-flatmap

####################################################################################################
# batchmap-flatmap
####################################################################################################
FROM scratch as batch-flatmap
ARG ARCH
FROM scratch AS batch-flatmap
COPY --from=base /usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=base /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=base /bin/batchmap-flatmap /bin/batchmap-flatmap
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
TAG ?= stable
PUSH ?= false
IMAGE_REGISTRY = quay.io/numaio/numaflow-go/batch-map-flatmap:${TAG}
ARCHITECTURES = amd64 arm64

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/batchmap-flatmap main.go
for arch in $(ARCHITECTURES); do \
GOOS=linux GOARCH=$${arch} go build -v -o ./dist/batchmap-flatmap-$${arch} main.go; \
done

.PHONY: image-push
image-push: build
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module batchmap-flatmap

go 1.22
go 1.20

replace github.com/numaproj/numaflow-go => ../../../..

Expand Down
8 changes: 4 additions & 4 deletions pkg/mapper/examples/even_odd/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
####################################################################################################
# base
####################################################################################################
FROM alpine:3.12.3 as base
FROM alpine:3.20 AS base
ARG TARGETARCH
RUN apk update && apk upgrade && \
apk add ca-certificates && \
apk --no-cache add tzdata

COPY dist/even-odd-example /bin/even-odd-example
COPY dist/even-odd-example-${TARGETARCH} /bin/even-odd-example
RUN chmod +x /bin/even-odd-example

####################################################################################################
# even-odd
####################################################################################################
FROM scratch as even-odd
ARG ARCH
FROM scratch AS even-odd
COPY --from=base /usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=base /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=base /bin/even-odd-example /bin/even-odd-example
Expand Down
5 changes: 4 additions & 1 deletion pkg/mapper/examples/even_odd/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
TAG ?= stable
PUSH ?= false
IMAGE_REGISTRY = quay.io/numaio/numaflow-go/map-even-odd:${TAG}
ARCHITECTURES = amd64 arm64

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/even-odd-example main.go
for arch in $(ARCHITECTURES); do \
GOOS=linux GOARCH=$${arch} go build -v -o ./dist/even-odd-example-$${arch} main.go; \
done

.PHONY: image-push
image-push: build
Expand Down
8 changes: 4 additions & 4 deletions pkg/mapper/examples/flatmap/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
####################################################################################################
# base
####################################################################################################
FROM alpine:3.12.3 as base
FROM alpine:3.20 AS base
ARG TARGETARCH
RUN apk update && apk upgrade && \
apk add ca-certificates && \
apk --no-cache add tzdata

COPY dist/flatmap-example /bin/flatmap-example
COPY dist/flatmap-example-${TARGETARCH} /bin/flatmap-example
RUN chmod +x /bin/flatmap-example

####################################################################################################
# flatmap
####################################################################################################
FROM scratch as flatmap
ARG ARCH
FROM scratch AS flatmap
COPY --from=base /usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=base /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=base /bin/flatmap-example /bin/flatmap-example
Expand Down
5 changes: 4 additions & 1 deletion pkg/mapper/examples/flatmap/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
TAG ?= stable
PUSH ?= false
IMAGE_REGISTRY = quay.io/numaio/numaflow-go/map-flatmap:${TAG}
ARCHITECTURES = amd64 arm64

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/flatmap-example main.go
for arch in $(ARCHITECTURES); do \
GOOS=linux GOARCH=$${arch} go build -v -o ./dist/flatmap-example-$${arch} main.go; \
done

.PHONY: image-push
image-push: build
Expand Down
8 changes: 4 additions & 4 deletions pkg/mapper/examples/forward_message/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
####################################################################################################
# base
####################################################################################################
FROM alpine:3.12.3 as base
FROM alpine:3.20 AS base
ARG TARGETARCH
RUN apk update && apk upgrade && \
apk add ca-certificates && \
apk --no-cache add tzdata

COPY dist/forward-message-example /bin/forward-message-example
COPY dist/forward-message-example-${TARGETARCH} /bin/forward-message-example
RUN chmod +x /bin/forward-message-example

####################################################################################################
# forward-message
####################################################################################################
FROM scratch as forward-message
ARG ARCH
FROM scratch AS forward-message
COPY --from=base /usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=base /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=base /bin/forward-message-example /bin/forward-message-example
Expand Down
5 changes: 4 additions & 1 deletion pkg/mapper/examples/forward_message/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
TAG ?= stable
PUSH ?= false
IMAGE_REGISTRY = quay.io/numaio/numaflow-go/map-forward-message:${TAG}
ARCHITECTURES = amd64 arm64

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/forward-message-example main.go
for arch in $(ARCHITECTURES); do \
GOOS=linux GOARCH=$${arch} go build -v -o ./dist/forward-message-example-$${arch} main.go; \
done

.PHONY: image-push
image-push: build
Expand Down
8 changes: 4 additions & 4 deletions pkg/mapper/examples/retry/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
####################################################################################################
# base
####################################################################################################
FROM alpine:3.12.3 as base
FROM alpine:3.20 AS base
ARG TARGETARCH
RUN apk update && apk upgrade && \
apk add ca-certificates && \
apk --no-cache add tzdata

COPY dist/retry /bin/retry
COPY dist/retry-${TARGETARCH} /bin/retry
RUN chmod +x /bin/retry

####################################################################################################
# retry
####################################################################################################
FROM scratch as retry
ARG ARCH
FROM scratch AS retry
COPY --from=base /usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=base /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=base /bin/retry /bin/retry
Expand Down
5 changes: 4 additions & 1 deletion pkg/mapper/examples/retry/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
TAG ?= stable
PUSH ?= false
IMAGE_REGISTRY = quay.io/numaio/numaflow-go/map-retry:${TAG}
ARCHITECTURES = amd64 arm64

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/retry main.go
for arch in $(ARCHITECTURES); do \
GOOS=linux GOARCH=$${arch} go build -v -o ./dist/retry-$${arch} main.go; \
done

.PHONY: image-push
image-push: build
Expand Down
8 changes: 4 additions & 4 deletions pkg/mapper/examples/tickgen/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
####################################################################################################
# base
####################################################################################################
FROM alpine:3.12.3 as base
FROM alpine:3.20 AS base
ARG TARGETARCH
RUN apk update && apk upgrade && \
apk add ca-certificates && \
apk --no-cache add tzdata

COPY dist/tickgen-example /bin/tickgen-example
COPY dist/tickgen-example-${TARGETARCH} /bin/tickgen-example
RUN chmod +x /bin/tickgen-example

####################################################################################################
# flatmap
####################################################################################################
FROM scratch as tickgen
ARG ARCH
FROM scratch AS tickgen
COPY --from=base /usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=base /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=base /bin/tickgen-example /bin/tickgen-example
Expand Down
5 changes: 4 additions & 1 deletion pkg/mapper/examples/tickgen/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
TAG ?= stable
PUSH ?= false
IMAGE_REGISTRY = quay.io/numaio/numaflow-go/map-tickgen:${TAG}
ARCHITECTURES = amd64 arm64

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/tickgen-example main.go
for arch in $(ARCHITECTURES); do \
GOOS=linux GOARCH=$${arch} go build -v -o ./dist/tickgen-example-$${arch} main.go; \
done

.PHONY: image-push
image-push: build
Expand Down
8 changes: 4 additions & 4 deletions pkg/mapstreamer/examples/flatmap_stream/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
####################################################################################################
# base
####################################################################################################
FROM alpine:3.12.3 as base
FROM alpine:3.20 AS base
ARG TARGETARCH
RUN apk update && apk upgrade && \
apk add ca-certificates && \
apk --no-cache add tzdata

COPY dist/flatmap-stream-example /bin/flatmap-stream-example
COPY dist/flatmap-stream-example-${TARGETARCH} /bin/flatmap-stream-example
RUN chmod +x /bin/flatmap-stream-example

####################################################################################################
# flatmap
####################################################################################################
FROM scratch as flatmap_stream
ARG ARCH
FROM scratch AS flatmap_stream
COPY --from=base /usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=base /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=base /bin/flatmap-stream-example /bin/flatmap-stream-example
Expand Down
5 changes: 4 additions & 1 deletion pkg/mapstreamer/examples/flatmap_stream/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
TAG ?= stable
PUSH ?= false
IMAGE_REGISTRY = quay.io/numaio/numaflow-go/map-flatmap-stream:${TAG}
ARCHITECTURES = amd64 arm64

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/flatmap-stream-example main.go
for arch in $(ARCHITECTURES); do \
GOOS=linux GOARCH=$${arch} go build -v -o ./dist/flatmap-stream-example-$${arch} main.go; \
done

.PHONY: image-push
image-push: build
Expand Down
8 changes: 4 additions & 4 deletions pkg/reducer/examples/counter/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
####################################################################################################
# base
####################################################################################################
FROM alpine:3.12.3 as base
FROM alpine:3.20 AS base
ARG TARGETARCH
RUN apk update && apk upgrade && \
apk add ca-certificates && \
apk --no-cache add tzdata

COPY dist/counter-example /bin/counter-example
COPY dist/counter-example-${TARGETARCH} /bin/counter-example
RUN chmod +x /bin/counter-example

####################################################################################################
# counter
####################################################################################################
FROM scratch as counter
ARG ARCH
FROM scratch AS counter
COPY --from=base /usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=base /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=base /bin/counter-example /bin/counter-example
Expand Down
5 changes: 4 additions & 1 deletion pkg/reducer/examples/counter/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
TAG ?= stable
PUSH ?= false
IMAGE_REGISTRY = quay.io/numaio/numaflow-go/reduce-counter:${TAG}
ARCHITECTURES = amd64 arm64

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/counter-example main.go
for arch in $(ARCHITECTURES); do \
GOOS=linux GOARCH=$${arch} go build -v -o ./dist/counter-example-$${arch} main.go; \
done

.PHONY: image-push
image-push: build
Expand Down
8 changes: 4 additions & 4 deletions pkg/reducer/examples/sum/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
####################################################################################################
# base
####################################################################################################
FROM alpine:3.12.3 as base
FROM alpine:3.20 AS base
ARG TARGETARCH
RUN apk update && apk upgrade && \
apk add ca-certificates && \
apk --no-cache add tzdata

COPY dist/sum-example /bin/sum-example
COPY dist/sum-example-${TARGETARCH} /bin/sum-example
RUN chmod +x /bin/sum-example

####################################################################################################
# sum
####################################################################################################
FROM scratch as sum
ARG ARCH
FROM scratch AS sum
COPY --from=base /usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=base /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=base /bin/sum-example /bin/sum-example
Expand Down
5 changes: 4 additions & 1 deletion pkg/reducer/examples/sum/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
TAG ?= stable
PUSH ?= false
IMAGE_REGISTRY = quay.io/numaio/numaflow-go/reduce-sum:${TAG}
ARCHITECTURES = amd64 arm64

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/sum-example main.go
for arch in $(ARCHITECTURES); do \
GOOS=linux GOARCH=$${arch} go build -v -o ./dist/sum-example-$${arch} main.go; \
done

.PHONY: image-push
image-push: build
Expand Down
8 changes: 4 additions & 4 deletions pkg/reducestreamer/examples/counter/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
####################################################################################################
# base
####################################################################################################
FROM alpine:3.12.3 as base
FROM alpine:3.20 AS base
ARG TARGETARCH
RUN apk update && apk upgrade && \
apk add ca-certificates && \
apk --no-cache add tzdata

COPY dist/counter-example /bin/counter-example
COPY dist/counter-example-${TARGETARCH} /bin/counter-example
RUN chmod +x /bin/counter-example

####################################################################################################
# counter
####################################################################################################
FROM scratch as counter
ARG ARCH
FROM scratch AS counter
COPY --from=base /usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=base /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=base /bin/counter-example /bin/counter-example
Expand Down
Loading

0 comments on commit b559600

Please sign in to comment.