Compare commits

...

1 Commits

Author SHA1 Message Date
f61728f87b Multi-arch builds 2020-09-11 22:32:14 +01:00
2 changed files with 32 additions and 9 deletions

View File

@ -1,18 +1,29 @@
FROM ubuntu:19.10 FROM --platform=${BUILDPLATFORM:-linux/amd64} ubuntu:19.10 as builder
RUN apt-get update && apt-get install -y curl ARG BUILDPLATFORM
RUN curl -o megacmd-xUbuntu_19.10_amd64.deb https://mega.nz/linux/MEGAsync/xUbuntu_19.10/amd64/megacmd-xUbuntu_19.10_amd64.deb ARG TARGETPLATFORM
RUN apt install -y ./megacmd-xUbuntu_19.10_amd64.deb 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 adduser --disabled-password --gecos '' mega && adduser mega sudo && echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
ADD entrypoint.sh / ADD entrypoint.sh /
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
RUN adduser --disabled-password --gecos '' mega && adduser mega sudo && echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
USER mega
FROM --platform=${TARGETPLATFORM:-linux/amd64} ubuntu:19.10
WORKDIR /home/mega WORKDIR /home/mega
COPY --from=builder /etc/sudoers /etc/sudoers
COPY --from=builder /entrypoint.sh /entrypoint.sh
COPY --from=builder /megacmd.deb /megacmd.deb
RUN apt install -y ./megacmd.deb
USER mega
ENV PASSWORD= ENV PASSWORD=
ENV EMAIL= ENV EMAIL=
CMD /entrypoint.sh CMD /entrypoint.sh

View File

@ -1,6 +1,9 @@
.DEFAULT_GOAL := default .DEFAULT_GOAL := default
IMAGE ?= docker.cluster.fun/averagemarcus/megasync:latest 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 .PHONY: test # Run all tests, linting and format checks
test: lint check-format run-tests test: lint check-format run-tests
@ -31,11 +34,20 @@ build: lint check-format fetch-deps
.PHONY: docker-build # Build the docker image .PHONY: docker-build # Build the docker image
docker-build: 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 .PHONY: docker-publish # Push the docker image to the remote registry
docker-publish: 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 .PHONY: run # Run the application
run: run: