diff --git a/ap-relay/Dockerfile.arm64v8 b/ap-relay/Dockerfile.arm64v8 new file mode 100644 index 0000000..13edda2 --- /dev/null +++ b/ap-relay/Dockerfile.arm64v8 @@ -0,0 +1,34 @@ +FROM arm64v8/rust:1.42.0-buster AS builder + +# Set up git remote +ARG TAG +ARG GIT_REPOSITORY +ARG BUILD_DATE + +ARG UID=991 +ARG GID=991 + +RUN git clone -b ${TAG} ${GIT_REPOSITORY} /opt/relay +WORKDIR /opt/relay +RUN cargo install --path . + +FROM arm64v8/ubuntu:19.10 + +RUN \ + apt-get update && \ + apt-get upgrade -y + +RUN \ + addgroup --gid "$GID" relay && \ + adduser \ + --disabled-password \ + --gecos "" \ + --ingroup relay \ + --uid "$UID" \ + relay + +COPY --from=builder /usr/local/cargo/bin/ap-actix /usr/local/bin/relay + +USER relay + +CMD ["relay"] diff --git a/ap-relay/build.sh b/ap-relay/build.sh new file mode 100755 index 0000000..87d0088 --- /dev/null +++ b/ap-relay/build.sh @@ -0,0 +1,57 @@ +#!/usr/bin//env bash + +DEFAULT_TAG=master +DEFAULT_REPOSITORY=https://git.asonix.dog/asonix/ap-relay + +BUILD_DATE=$(date) +VERSION=$1 +TAG=${2:-$DEFAULT_TAG} +GIT_REPOSITORY=${3:-$DEFAULT_REPOSITORY} + +function require() { + if [ "$1" = "" ]; then + echo "input '$2' required" + print_help + exit 1 + fi +} + +function print_help() { + echo "build.sh" + echo "" + echo "Usage:" + echo " build.sh [version] [tag] [repository]" + echo "" + echo "Args:" + echo " version: The version of the current container" + echo " tag: The tag or branch of the relay to include (optional, defaults to asonix/downstream)" + echo " repository: The git repository to fetch the relay from (optional, defaults to https://git.asonix.dog/asonix/ap-relay)" +} + +function build_image() { + IMAGE=$1 + ARCH=$2 + + docker build \ + --pull \ + --no-cache \ + --build-arg BUILD_DATE="${BUILD_DATE}" \ + --build-arg TAG="${TAG}" \ + --build-arg VERSION="${VERSION}" \ + --build-arg GIT_REPOSITORY="${GIT_REPOSITORY}" \ + -f "Dockerfile.${ARCH}" \ + -t "${IMAGE}:$(echo ${TAG} | sed 's/\//-/g')-${VERSION}-${ARCH}" \ + -t "${IMAGE}:latest-${ARCH}" \ + -t "${IMAGE}:latest" \ + . + + docker push "${IMAGE}:$(echo ${TAG} | sed 's/\//-/g')-${VERSION}-${ARCH}" + docker push "${IMAGE}:latest-${ARCH}" + docker push "${IMAGE}:latest" +} + +require "$VERSION" "version" + +set -xe + +build_image asonix/relay arm64v8