build: parameterize arch builds

Build zot artifacts for multiple os and arch.
[linux, amd64] - common case
[linux, arm64] - raspberry pi
[darwin, amd64] - Intel-based macs
[darwin, arm64] - Arm-based macs

Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com>
This commit is contained in:
Ramkumar Chinchani
2022-01-24 05:19:01 +00:00
committed by Ramkumar Chinchani
parent d2aa016cdb
commit 298b966eab
11 changed files with 77 additions and 225 deletions
+5 -2
View File
@@ -2,10 +2,13 @@
# Stage 1: Build binary, create default config file
# ---
FROM ghcr.io/project-zot/golang:1.17 AS builder
ARG COMMIT
ARG OS
ARG ARCH
RUN mkdir -p /go/src/github.com/project-zot/zot
WORKDIR /go/src/github.com/project-zot/zot
COPY . .
RUN make clean exporter-minimal
RUN make COMMIT=$COMMIT OS=$OS ARCH=$ARCH clean exporter-minimal
RUN echo '{\n\
"Server": {\n\
"protocol": "http",\n\
@@ -24,7 +27,7 @@ RUN echo '{\n\
# Stage 2: Final image with nothing but binary and default config file
# ---
FROM scratch AS final
COPY --from=builder /go/src/github.com/project-zot/zot/bin/zxp /zxp
COPY --from=builder /go/src/github.com/project-zot/zot/bin/zxp-$OS-$ARCH /zxp
COPY --from=builder /go/src/github.com/project-zot/zot/config.json /etc/zxp/config.json
ENTRYPOINT ["/zxp"]
EXPOSE 5001