Multi-arch builds

This commit is contained in:
Marcus Noble 2020-09-11 22:17:27 +01:00
parent f6a2e8277f
commit 532c2a86f0
2 changed files with 24 additions and 5 deletions

View File

@ -1,8 +1,15 @@
FROM ubuntu:19.10
RUN apt-get update && apt-get install -y curl
RUN curl -o megacmd-xUbuntu_19.10_amd64.deb https://mega.nz/linux/MEGAsync/xUbuntu_19.10/amd64/megacmd-xUbuntu_19.10_amd64.deb
RUN apt install -y ./megacmd-xUbuntu_19.10_amd64.deb
ARG BUILDPLATFORM
ARG TARGETPLATFORM
ARG TARGETOS
ARG TARGETARCH
RUN apt-get update && apt-get install -y curl ca-certificates
RUN export URL="https://mega.nz/linux/MEGAsync/Raspbian_10.0/armhf/megacmd-Raspbian_10.0_armhf.deb" && \
if [ "${TARGETARCH}" = "amd64" ] ; then export URL="https://mega.nz/linux/MEGAsync/xUbuntu_19.10/amd64/megacmd-xUbuntu_19.10_amd64.deb" ; fi && \
curl -k -o megacmd.deb $URL
RUN apt install -y ./megacmd.deb
ADD entrypoint.sh /
RUN chmod +x /entrypoint.sh

View File

@ -1,6 +1,9 @@
.DEFAULT_GOAL := default
IMAGE ?= docker.cluster.fun/averagemarcus/megasync:latest
PLATFORMS ?= linux/amd64,linux/arm/v7
export DOCKER_CLI_EXPERIMENTAL=enabled
.PHONY: test # Run all tests, linting and format checks
test: lint check-format run-tests
@ -31,11 +34,20 @@ build: lint check-format fetch-deps
.PHONY: docker-build # Build the docker image
docker-build:
@docker build -t $(IMAGE) .
@docker buildx create --use --name=crossplat --node=crossplat && \
docker buildx build \
--output "type=docker,push=false" \
--tag $(IMAGE) \
.
.PHONY: docker-publish # Push the docker image to the remote registry
docker-publish:
@docker push $(IMAGE)
@docker buildx create --use --name=crossplat --node=crossplat && \
docker buildx build \
--platform $(PLATFORMS) \
--output "type=image,push=true" \
--tag $(IMAGE) \
.
.PHONY: run # Run the application
run: