Multiarch docker builds
This commit is contained in:
parent
dd69d5caaa
commit
0432f8a04a
|
@ -1 +1 @@
|
||||||
syndicate-server
|
syndicate-server.*
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
FROM busybox
|
FROM busybox
|
||||||
RUN mkdir /data
|
RUN mkdir /data
|
||||||
COPY ./syndicate-server /
|
ARG TARGETARCH
|
||||||
CMD ["/syndicate-server", "-c", "/data"]
|
COPY ./syndicate-server.$TARGETARCH /syndicate-server
|
||||||
|
CMD ["/syndicate-server", "-c", "/data", "-p", "1"]
|
||||||
|
|
|
@ -1,18 +1,37 @@
|
||||||
|
U=leastfixedpoint
|
||||||
|
I=syndicate-server
|
||||||
|
ARCHITECTURES:=amd64 arm arm64
|
||||||
|
SERVERS:=$(patsubst %,syndicate-server.%,$(ARCHITECTURES))
|
||||||
|
VERSION=$(shell ./syndicate-server.$(shell ./docker-architecture $$(uname -m)) --version | cut -d' ' -f2)
|
||||||
|
|
||||||
all:
|
all:
|
||||||
|
|
||||||
.PHONY: all clean image push syndicate-server
|
.PHONY: all clean image push push-only
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f syndicate-server
|
rm -f syndicate-server.*
|
||||||
docker rmi leastfixedpoint/syndicate-server
|
-podman images -q $(U)/$(I) | sort -u | xargs podman rmi -f
|
||||||
|
|
||||||
image: syndicate-server
|
image: $(SERVERS)
|
||||||
docker build -t leastfixedpoint/$$(./syndicate-server --version | tr ' ' ':') -t leastfixedpoint/syndicate-server:latest .
|
for A in $(ARCHITECTURES); do set -x; \
|
||||||
|
podman build --platform=linux/$$A \
|
||||||
|
-t $(U)/$(I):$(VERSION)-$$A \
|
||||||
|
-t $(U)/$(I):latest-$$A \
|
||||||
|
.; \
|
||||||
|
done
|
||||||
|
rm -f tmp.image
|
||||||
|
|
||||||
push: image
|
push: image push-only
|
||||||
docker push leastfixedpoint/$$(./syndicate-server --version | tr ' ' ':')
|
|
||||||
docker push leastfixedpoint/syndicate-server:latest
|
|
||||||
|
|
||||||
syndicate-server:
|
push-only:
|
||||||
make -C .. x86_64-binary-release
|
$(patsubst %,podman push $(U)/$(I):$(VERSION)-%;,$(ARCHITECTURES))
|
||||||
cp -a ../target/x86_64-unknown-linux-musl/release/syndicate-server $@
|
$(patsubst %,podman push $(U)/$(I):latest-%;,$(ARCHITECTURES))
|
||||||
|
podman rmi -f $(U)/$(I):$(VERSION) $(U)/$(I):latest
|
||||||
|
podman manifest create $(U)/$(I):$(VERSION) $(patsubst %,$(U)/$(I):$(VERSION)-%,$(ARCHITECTURES))
|
||||||
|
podman manifest create $(U)/$(I):latest $(patsubst %,$(U)/$(I):latest-%,$(ARCHITECTURES))
|
||||||
|
podman manifest push $(U)/$(I):$(VERSION)
|
||||||
|
podman manifest push $(U)/$(I):latest
|
||||||
|
|
||||||
|
syndicate-server.%:
|
||||||
|
make -C .. $$(./alpine-architecture $*)-binary-release
|
||||||
|
cp -a ../target/$$(./alpine-architecture $*)-unknown-linux-musl*/release/syndicate-server $@
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
# Docker images for syndicate-server
|
||||||
|
|
||||||
|
Build using podman:
|
||||||
|
|
||||||
|
apt install podman
|
||||||
|
|
||||||
|
and at least until the dependencies are fixed (?),
|
||||||
|
|
||||||
|
apt install uidmap slirp4netns
|
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
case $1 in
|
||||||
|
amd64) echo x86_64;;
|
||||||
|
arm) echo armv7;;
|
||||||
|
arm64) echo aarch64;;
|
||||||
|
esac
|
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
case $1 in
|
||||||
|
x86_64) echo amd64;;
|
||||||
|
armv7) echo arm;;
|
||||||
|
aarch64) echo arm64;;
|
||||||
|
esac
|
Loading…
Reference in New Issue