From 8687ac4931c49d1151d27be275f3723488b98236 Mon Sep 17 00:00:00 2001 From: Matt Beckett Date: Thu, 7 Jul 2022 22:44:49 +0100 Subject: [PATCH 01/15] Modify dockerfiles and workflow for aarch64 --- .github/workflows/multipaper.yml | 65 ++++++++++++++++++++++++++++++++ Dockerfile.master | 6 +-- Dockerfile.server | 6 +-- 3 files changed, 71 insertions(+), 6 deletions(-) diff --git a/.github/workflows/multipaper.yml b/.github/workflows/multipaper.yml index 8b13789..09d1a90 100644 --- a/.github/workflows/multipaper.yml +++ b/.github/workflows/multipaper.yml @@ -1 +1,66 @@ +name: Build Docker Images +on: [push, pull_request] +env: + TARGET_PLATFORMS: linux/amd64,linux/arm64,linux/arm/v7 + +jobs: + + build-multipaper-docker: + + runs-on: ubuntu-latest + + steps: + + - uses: actions/checkout@v3 + name: Checkout repository + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + with: + install: true + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GHCR_TOKEN }} + + - name: Docker meta for MultiPaperK8s/multipaper-master + id: multipaper-master-meta + uses: docker/metadata-action@v4 + with: + images: ghcr.io/MultiPaperK8s/multipaper-master + + - name: Build and push multipaper-master for ${{ env.TARGET_PLATFORMS }} + uses: docker/build-push-action@v3 + with: + context: . + file: Dockerfile.master + platforms: ${{ env.TARGET_PLATFORMS }} + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.multipaper-master-meta.outputs.tags }} + labels: ${{ steps.multipaper-master-meta.outputs.labels }} + target: multipaper-master + + - name: Docker meta for MultiPaperK8s/multipaper + id: multipaper-server-meta + uses: docker/metadata-action@v4 + with: + images: ghcr.io/MultiPaperK8s/multipaper + + - name: Build and push multipaper for ${{ env.TARGET_PLATFORMS }} + uses: docker/build-push-action@v3 + with: + context: . + file: Dockerfile.server + platforms: ${{ env.TARGET_PLATFORMS }} + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.multipaper-server-meta.outputs.tags }} + labels: ${{ steps.multipaper-server-meta.outputs.labels }} + target: multipaper-server \ No newline at end of file diff --git a/Dockerfile.master b/Dockerfile.master index 0f89189..9f4a759 100644 --- a/Dockerfile.master +++ b/Dockerfile.master @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1.4.1 -FROM eclipse-temurin:17.0.3_7-jre-alpine +FROM eclipse-temurin:17.0.3_7-jre # Versioning ARG MULTIPAPER_VERSION=1.18.2 @@ -8,8 +8,8 @@ ARG MASTER_VERSION=2.8.8 # Setup groups and install dumb init RUN addgroup --gid 1001 multipaper && \ - adduser --home /multipaper --uid 1001 -S -G multipaper multipaper && \ - apk add --no-cache dumb-init=1.2.5-r1 + adduser --system --home /multipaper --uid 1001 --gid 1001 multipaper && \ + apt update && apt install -y --no-install-recommends dumb-init=1.2.5-2 # Use the multipaper's home directory as our work directory WORKDIR /multipaper diff --git a/Dockerfile.server b/Dockerfile.server index cfa7c7f..31ff248 100644 --- a/Dockerfile.server +++ b/Dockerfile.server @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1.4.1 -FROM eclipse-temurin:17.0.3_7-jre-alpine +FROM eclipse-temurin:17.0.3_7-jre # Versioning ARG VERSION=1.18.2 @@ -8,8 +8,8 @@ ARG FULL_VERSION="$VERSION-$BUILD" # Setup groups and install dumb init RUN addgroup --gid 1001 multipaper && \ - adduser --home /multipaper --uid 1001 -S -G multipaper multipaper && \ - apk add --no-cache dumb-init=1.2.5-r1 + adduser --system --home /multipaper --uid 1001 --gid 1001 multipaper && \ + apt update && apt install -y --no-install-recommends dumb-init=1.2.5-2 # Use the multipaper's home directory as our work directory WORKDIR /multipaper From 9828191a00344cabc54751e408caada152d75f86 Mon Sep 17 00:00:00 2001 From: Matt Beckett Date: Thu, 7 Jul 2022 22:58:08 +0100 Subject: [PATCH 02/15] Update workflow for building image --- .github/workflows/multipaper.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multipaper.yml b/.github/workflows/multipaper.yml index 09d1a90..572eff4 100644 --- a/.github/workflows/multipaper.yml +++ b/.github/workflows/multipaper.yml @@ -29,7 +29,7 @@ jobs: with: registry: ghcr.io username: ${{ github.actor }} - password: ${{ secrets.GHCR_TOKEN }} + password: ${{ GITHUB_TOKEN }} - name: Docker meta for MultiPaperK8s/multipaper-master id: multipaper-master-meta From 177722c5aa989c906385a1f40be3e53bff7d2625 Mon Sep 17 00:00:00 2001 From: Matt Beckett Date: Thu, 7 Jul 2022 22:59:08 +0100 Subject: [PATCH 03/15] Update workflow for building image --- .github/workflows/multipaper.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multipaper.yml b/.github/workflows/multipaper.yml index 572eff4..c526288 100644 --- a/.github/workflows/multipaper.yml +++ b/.github/workflows/multipaper.yml @@ -29,7 +29,7 @@ jobs: with: registry: ghcr.io username: ${{ github.actor }} - password: ${{ GITHUB_TOKEN }} + password: $GITHUB_TOKEN - name: Docker meta for MultiPaperK8s/multipaper-master id: multipaper-master-meta From 0b742cca411d22e38e3009afca820ae60df68978 Mon Sep 17 00:00:00 2001 From: Matt Beckett Date: Thu, 7 Jul 2022 23:10:26 +0100 Subject: [PATCH 04/15] Update workflow target container repo --- .github/workflows/multipaper.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multipaper.yml b/.github/workflows/multipaper.yml index c526288..ff2fc4a 100644 --- a/.github/workflows/multipaper.yml +++ b/.github/workflows/multipaper.yml @@ -28,7 +28,7 @@ jobs: uses: docker/login-action@v2 with: registry: ghcr.io - username: ${{ github.actor }} + username: MultiPaperK8s password: $GITHUB_TOKEN - name: Docker meta for MultiPaperK8s/multipaper-master From 98f4340cd9fab7029fe9d557fc2f8e569a9eaee6 Mon Sep 17 00:00:00 2001 From: RemcoDev <106870142+RemcoSpigot@users.noreply.github.com> Date: Fri, 8 Jul 2022 00:12:40 +0200 Subject: [PATCH 05/15] Change login Docker password and username Change $GITHUB_TOKEN -> ${{ secrets.GITHUB_TOKEN }} Change username -> ${{ github.repository_owner }} --- .github/workflows/multipaper.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/multipaper.yml b/.github/workflows/multipaper.yml index ff2fc4a..0c5b9cd 100644 --- a/.github/workflows/multipaper.yml +++ b/.github/workflows/multipaper.yml @@ -28,14 +28,14 @@ jobs: uses: docker/login-action@v2 with: registry: ghcr.io - username: MultiPaperK8s - password: $GITHUB_TOKEN + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} - name: Docker meta for MultiPaperK8s/multipaper-master id: multipaper-master-meta uses: docker/metadata-action@v4 with: - images: ghcr.io/MultiPaperK8s/multipaper-master + images: ghcr.io/${{ github.repository_owner }}/multipaper-master - name: Build and push multipaper-master for ${{ env.TARGET_PLATFORMS }} uses: docker/build-push-action@v3 @@ -63,4 +63,4 @@ jobs: push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.multipaper-server-meta.outputs.tags }} labels: ${{ steps.multipaper-server-meta.outputs.labels }} - target: multipaper-server \ No newline at end of file + target: multipaper-server From e5b0ef2a2940b94fdf1eba0dbdc6144f7f183a21 Mon Sep 17 00:00:00 2001 From: RemcoDev <106870142+RemcoSpigot@users.noreply.github.com> Date: Fri, 8 Jul 2022 00:12:40 +0200 Subject: [PATCH 06/15] Remove targets from docker build --- .github/workflows/multipaper.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/multipaper.yml b/.github/workflows/multipaper.yml index 0c5b9cd..477a57e 100644 --- a/.github/workflows/multipaper.yml +++ b/.github/workflows/multipaper.yml @@ -46,7 +46,6 @@ jobs: push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.multipaper-master-meta.outputs.tags }} labels: ${{ steps.multipaper-master-meta.outputs.labels }} - target: multipaper-master - name: Docker meta for MultiPaperK8s/multipaper id: multipaper-server-meta @@ -63,4 +62,3 @@ jobs: push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.multipaper-server-meta.outputs.tags }} labels: ${{ steps.multipaper-server-meta.outputs.labels }} - target: multipaper-server From bbd1167fa0eb50edda9296bab8b225e2c46aa071 Mon Sep 17 00:00:00 2001 From: RemcoDev <106870142+RemcoSpigot@users.noreply.github.com> Date: Sun, 10 Jul 2022 00:38:47 +0200 Subject: [PATCH 07/15] Add ubuntu bloat Docker images --- .github/workflows/multipaper.yml | 113 +++++++++++++++---------------- build/ubuntu/Dockerfile.master | 32 +++++++++ build/ubuntu/Dockerfile.server | 31 +++++++++ 3 files changed, 119 insertions(+), 57 deletions(-) create mode 100644 build/ubuntu/Dockerfile.master create mode 100644 build/ubuntu/Dockerfile.server diff --git a/.github/workflows/multipaper.yml b/.github/workflows/multipaper.yml index 477a57e..8aa5576 100644 --- a/.github/workflows/multipaper.yml +++ b/.github/workflows/multipaper.yml @@ -5,60 +5,59 @@ env: TARGET_PLATFORMS: linux/amd64,linux/arm64,linux/arm/v7 jobs: - - build-multipaper-docker: - - runs-on: ubuntu-latest - - steps: - - - uses: actions/checkout@v3 - name: Checkout repository - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v2 - with: - install: true - - - name: Login to GitHub Container Registry - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Docker meta for MultiPaperK8s/multipaper-master - id: multipaper-master-meta - uses: docker/metadata-action@v4 - with: - images: ghcr.io/${{ github.repository_owner }}/multipaper-master - - - name: Build and push multipaper-master for ${{ env.TARGET_PLATFORMS }} - uses: docker/build-push-action@v3 - with: - context: . - file: Dockerfile.master - platforms: ${{ env.TARGET_PLATFORMS }} - push: ${{ github.event_name != 'pull_request' }} - tags: ${{ steps.multipaper-master-meta.outputs.tags }} - labels: ${{ steps.multipaper-master-meta.outputs.labels }} - - - name: Docker meta for MultiPaperK8s/multipaper - id: multipaper-server-meta - uses: docker/metadata-action@v4 - with: - images: ghcr.io/MultiPaperK8s/multipaper - - - name: Build and push multipaper for ${{ env.TARGET_PLATFORMS }} - uses: docker/build-push-action@v3 - with: - context: . - file: Dockerfile.server - platforms: ${{ env.TARGET_PLATFORMS }} - push: ${{ github.event_name != 'pull_request' }} - tags: ${{ steps.multipaper-server-meta.outputs.tags }} - labels: ${{ steps.multipaper-server-meta.outputs.labels }} + build-multipaper-docker-ubuntu: + + runs-on: ubuntu-latest + + steps: + + - uses: actions/checkout@v3 + name: Checkout repository + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + with: + install: true + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Docker meta for MultiPaperK8s/multipaper-master + id: multipaper-master-meta + uses: docker/metadata-action@v4 + with: + images: ghcr.io/${{ github.repository_owner }}/multipaper-master + + - name: Build and push multipaper-master for ${{ env.TARGET_PLATFORMS }} + uses: docker/build-push-action@v3 + with: + context: ./build/ubuntu + file: build/ubuntu/Dockerfile.master + platforms: ${{ env.TARGET_PLATFORMS }} + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.multipaper-master-meta.outputs.tags }} + labels: ${{ steps.multipaper-master-meta.outputs.labels }} + + - name: Docker meta for MultiPaperK8s/multipaper + id: multipaper-server-meta + uses: docker/metadata-action@v4 + with: + images: ghcr.io/MultiPaperK8s/multipaper + + - name: Build and push multipaper for ${{ env.TARGET_PLATFORMS }} + uses: docker/build-push-action@v3 + with: + context: ./build/ubuntu + file: build/ubuntu/Dockerfile.server + platforms: ${{ env.TARGET_PLATFORMS }} + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.multipaper-server-meta.outputs.tags }} + labels: ${{ steps.multipaper-server-meta.outputs.labels }} diff --git a/build/ubuntu/Dockerfile.master b/build/ubuntu/Dockerfile.master new file mode 100644 index 0000000..9f4a759 --- /dev/null +++ b/build/ubuntu/Dockerfile.master @@ -0,0 +1,32 @@ +# syntax=docker/dockerfile:1.4.1 +FROM eclipse-temurin:17.0.3_7-jre + +# Versioning +ARG MULTIPAPER_VERSION=1.18.2 +ARG MULTIPAPER_BUILD=95 +ARG MASTER_VERSION=2.8.8 + +# Setup groups and install dumb init +RUN addgroup --gid 1001 multipaper && \ + adduser --system --home /multipaper --uid 1001 --gid 1001 multipaper && \ + apt update && apt install -y --no-install-recommends dumb-init=1.2.5-2 + +# Use the multipaper's home directory as our work directory +WORKDIR /multipaper + +# Switch from root to multipaper +USER multipaper + +# Download multipaper +ADD --chown=multipaper:multipaper https://multipaper.io/api/v2/projects/multipaper/versions/$MULTIPAPER_VERSION/builds/$MULTIPAPER_BUILD/downloads/MultiPaper-Master-$MASTER_VERSION-all.jar multipaper-master.jar + +# Expose the ports of the master server and proxy +EXPOSE 35353/tcp +EXPOSE 25565/tcp + +# Start the process using dumb-init +ENTRYPOINT ["/usr/bin/dumb-init", "--"] +CMD ["java", "-jar", "/multipaper/multipaper-master.jar"] + +# Switch to the data directory +WORKDIR /multipaper/data \ No newline at end of file diff --git a/build/ubuntu/Dockerfile.server b/build/ubuntu/Dockerfile.server new file mode 100644 index 0000000..31ff248 --- /dev/null +++ b/build/ubuntu/Dockerfile.server @@ -0,0 +1,31 @@ +# syntax=docker/dockerfile:1.4.1 +FROM eclipse-temurin:17.0.3_7-jre + +# Versioning +ARG VERSION=1.18.2 +ARG BUILD=95 +ARG FULL_VERSION="$VERSION-$BUILD" + +# Setup groups and install dumb init +RUN addgroup --gid 1001 multipaper && \ + adduser --system --home /multipaper --uid 1001 --gid 1001 multipaper && \ + apt update && apt install -y --no-install-recommends dumb-init=1.2.5-2 + +# Use the multipaper's home directory as our work directory +WORKDIR /multipaper + +# Switch from root to multipaper +USER multipaper + +# Download multipaper +ADD --chown=multipaper:multipaper https://multipaper.io/api/v2/projects/multipaper/versions/$VERSION/builds/$BUILD/downloads/multipaper-$FULL_VERSION.jar multipaper.jar + +# Expose the required ports +EXPOSE 25565/tcp + +# Start the process using dumb-init +ENTRYPOINT ["/usr/bin/dumb-init", "--"] +CMD ["java", "-jar", "/multipaper/multipaper.jar"] + +# Switch to the data directory +WORKDIR /multipaper/data \ No newline at end of file From 686152caa19e2bed21ae86f20f3c7f6e102cbf29 Mon Sep 17 00:00:00 2001 From: RemcoDev <106870142+RemcoSpigot@users.noreply.github.com> Date: Sun, 10 Jul 2022 00:46:06 +0200 Subject: [PATCH 08/15] Add debian build --- .github/workflows/multipaper.yml | 58 ++++++++++++++++++++++++++++ build/debian-slim/Dockerfile.master | 59 +++++++++++++++++++++++++++++ build/debian-slim/Dockerfile.server | 58 ++++++++++++++++++++++++++++ 3 files changed, 175 insertions(+) create mode 100644 build/debian-slim/Dockerfile.master create mode 100644 build/debian-slim/Dockerfile.server diff --git a/.github/workflows/multipaper.yml b/.github/workflows/multipaper.yml index 8aa5576..a936d92 100644 --- a/.github/workflows/multipaper.yml +++ b/.github/workflows/multipaper.yml @@ -5,6 +5,64 @@ env: TARGET_PLATFORMS: linux/amd64,linux/arm64,linux/arm/v7 jobs: + + build-multipaper-docker-debian: + + runs-on: ubuntu-latest + + steps: + + - uses: actions/checkout@v3 + name: Checkout repository + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + with: + install: true + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Docker meta for MultiPaperK8s/multipaper-master + id: multipaper-master-meta + uses: docker/metadata-action@v4 + with: + images: ghcr.io/${{ github.repository_owner }}/multipaper-master-debian-unstable + + - name: Build and push multipaper-master for ${{ env.TARGET_PLATFORMS }} + uses: docker/build-push-action@v3 + with: + context: ./build/debian-slim + file: build/debian-slim/Dockerfile.master + platforms: ${{ env.TARGET_PLATFORMS }} + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.multipaper-master-meta.outputs.tags }} + labels: ${{ steps.multipaper-master-meta.outputs.labels }} + + - name: Docker meta for MultiPaperK8s/multipaper + id: multipaper-server-meta + uses: docker/metadata-action@v4 + with: + images: ghcr.io/MultiPaperK8s/multipaper-debian-unstable + + - name: Build and push multipaper for ${{ env.TARGET_PLATFORMS }} + uses: docker/build-push-action@v3 + with: + context: ./build/debian-slim + file: build/debian-slim/Dockerfile.server + platforms: ${{ env.TARGET_PLATFORMS }} + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.multipaper-server-meta.outputs.tags }} + labels: ${{ steps.multipaper-server-meta.outputs.labels }} + build-multipaper-docker-ubuntu: runs-on: ubuntu-latest diff --git a/build/debian-slim/Dockerfile.master b/build/debian-slim/Dockerfile.master new file mode 100644 index 0000000..ea91fab --- /dev/null +++ b/build/debian-slim/Dockerfile.master @@ -0,0 +1,59 @@ +# syntax=docker/dockerfile:1.4.1 +FROM eclipse-temurin:17.0.3_7-jdk AS jre-build + +# Create a custom Java runtime for MultiPaper Server +RUN jlink \ + --add-modules java.base,java.desktop,java.logging,java.naming,java.xml,jdk.sctp,jdk.unsupported \ + --strip-debug \ + --no-man-pages \ + --no-header-files \ + --compress=2 \ + --output /multipaper/java + +FROM debian:stable-20220622-slim + +# Initialising language +ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' + +# Setting up Java +ENV JAVA_HOME=/opt/java/openjdk \ + PATH="/opt/java/openjdk/bin:$PATH" + +## Taken from eclipse-temurin setup, but with version pinning and dumb-init +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata=2021a-1+deb11u4 curl=7.74.0-1.3+deb11u1 ca-certificates=20210119 fontconfig=2.13.1-4.2 locales=2.31-13+deb11u3 binutils=2.35.2-2 dumb-init=1.2.5-1 \ + && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ + && locale-gen en_US.UTF-8 \ + && rm -rf /var/lib/apt/lists/* + +# Copy over JRE +COPY --from=jre-build /multipaper/java $JAVA_HOME + +# Versioning +ARG MULTIPAPER_VERSION=1.18.2 +ARG MULTIPAPER_BUILD=95 +ARG MASTER_VERSION=2.8.8 + +# Setup groups +RUN addgroup --gid 1001 multipaper && \ + adduser --system --home /multipaper --uid 1001 --gid 1001 multipaper + +# Use the multipaper's home directory as our work directory +WORKDIR /multipaper + +# Switch from root to multipaper +USER multipaper + +# Download multipaper +ADD --chown=multipaper:multipaper https://multipaper.io/api/v2/projects/multipaper/versions/$MULTIPAPER_VERSION/builds/$MULTIPAPER_BUILD/downloads/MultiPaper-Master-$MASTER_VERSION-all.jar multipaper-master.jar + +# Expose the ports of the master server and proxy +EXPOSE 35353/tcp +EXPOSE 25565/tcp + +# Start the process using dumb-init +ENTRYPOINT ["/usr/bin/dumb-init", "--"] +CMD ["java", "-jar", "/multipaper/multipaper-master.jar"] + +# Switch to the data directory +WORKDIR /multipaper/data \ No newline at end of file diff --git a/build/debian-slim/Dockerfile.server b/build/debian-slim/Dockerfile.server new file mode 100644 index 0000000..00d30b6 --- /dev/null +++ b/build/debian-slim/Dockerfile.server @@ -0,0 +1,58 @@ +# syntax=docker/dockerfile:1.4.1 +FROM eclipse-temurin:17.0.3_7-jdk AS jre-build + +# Create a custom Java runtime for MultiPaper Server +RUN jlink \ + --add-modules java.base,java.compiler,java.logging,java.management,java.net.http,java.sql,java.desktop,java.security.sasl,java.naming,java.transaction.xa,java.xml,jdk.crypto.ec,jdk.zipfs,jdk.security.auth,jdk.unsupported \ + --strip-debug \ + --no-man-pages \ + --no-header-files \ + --compress=2 \ + --output /multipaper/java + +FROM debian:stable-20220622-slim + +# Initialising language +ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' + +# Setting up Java +ENV JAVA_HOME=/opt/java/openjdk \ + PATH="/opt/java/openjdk/bin:$PATH" + +## Taken from eclipse-temurin setup, but with version pinning and dumb-init +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata=2021a-1+deb11u4 curl=7.74.0-1.3+deb11u1 ca-certificates=20210119 fontconfig=2.13.1-4.2 locales=2.31-13+deb11u3 binutils=2.35.2-2 dumb-init=1.2.5-1 \ + && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ + && locale-gen en_US.UTF-8 \ + && rm -rf /var/lib/apt/lists/* + +# Copy over JRE +COPY --from=jre-build /multipaper/java $JAVA_HOME + +# Versioning +ARG VERSION=1.18.2 +ARG BUILD=95 +ARG FULL_VERSION="$VERSION-$BUILD" + +# Setup groups +RUN addgroup --gid 1001 multipaper && \ + adduser --system --home /multipaper --uid 1001 --gid 1001 multipaper + +# Use the multipaper's home directory as our work directory +WORKDIR /multipaper + +# Switch from root to multipaper +USER multipaper + +# Download multipaper +ADD --chown=multipaper:multipaper https://multipaper.io/api/v2/projects/multipaper/versions/$VERSION/builds/$BUILD/downloads/multipaper-$FULL_VERSION.jar multipaper.jar + +# Expose the required ports +EXPOSE 25565/tcp + +# Start the process using dumb-init +ENTRYPOINT ["/usr/bin/dumb-init", "--"] +CMD ["java", "-jar", "/multipaper/multipaper.jar"] + +# Switch to the data directory +WORKDIR /multipaper/data \ No newline at end of file From 2b071318d37921784f11907764ec94de3164bf5a Mon Sep 17 00:00:00 2001 From: Matthew Beckett Date: Thu, 21 Jul 2022 01:04:49 +0100 Subject: [PATCH 09/15] Add init container built and target aarch64 and amd64 --- .github/workflows/multipaper.yml | 42 ++++++++++++++++++++++++++++++++ build/alpine/Dockerfile.init | 12 +++++++++ 2 files changed, 54 insertions(+) create mode 100644 build/alpine/Dockerfile.init diff --git a/.github/workflows/multipaper.yml b/.github/workflows/multipaper.yml index a936d92..efb3f6d 100644 --- a/.github/workflows/multipaper.yml +++ b/.github/workflows/multipaper.yml @@ -2,10 +2,52 @@ name: Build Docker Images on: [push, pull_request] env: + TARGET_PLATFORMS_ALPINE: linux/amd64,linux/arm64,linux/arm/v7 TARGET_PLATFORMS: linux/amd64,linux/arm64,linux/arm/v7 jobs: + build-multipaper-docker-alpine: + + runs-on: ubuntu-latest + + steps: + + - uses: actions/checkout@v3 + name: Checkout repository + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + with: + install: true + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Docker meta for MultiPaperK8s/multipaper-init + id: multipaper-init-meta + uses: docker/metadata-action@v4 + with: + images: ghcr.io/${{ github.repository_owner }}/multipaper-init + + - name: Build and push multipaper-init for ${{ env.TARGET_PLATFORMS_ALPINE }} + uses: docker/build-push-action@v3 + with: + context: ./build/alpine + file: build/alpine/Dockerfile.init + platforms: ${{ env.TARGET_PLATFORMS_ALPINE }} + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.multipaper-init-meta.outputs.tags }} + labels: ${{ steps.multipaper-init-meta.outputs.labels }} + build-multipaper-docker-debian: runs-on: ubuntu-latest diff --git a/build/alpine/Dockerfile.init b/build/alpine/Dockerfile.init new file mode 100644 index 0000000..977223f --- /dev/null +++ b/build/alpine/Dockerfile.init @@ -0,0 +1,12 @@ +# syntax=docker/dockerfile:1.4.1 +FROM alpine:3.16.0 + +RUN addgroup --gid 1001 multipaper && \ + adduser --home /multipaper --uid 1001 -S -G multipaper multipaper + +RUN apk add --no-cache --update libintl=0.21-r2 && \ + apk add --no-cache --virtual build_deps gettext=0.21-r2 && \ + cp /usr/bin/envsubst /usr/local/bin/envsubst && \ + apk del build_deps + +USER multipaper \ No newline at end of file From 515fe3626c9a561e5b89bca8dc452efc0e95ab1e Mon Sep 17 00:00:00 2001 From: RemcoDev <106870142+RemcoSpigot@users.noreply.github.com> Date: Thu, 28 Jul 2022 20:03:27 +0200 Subject: [PATCH 10/15] Add .gitignore for development files --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c036379 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +tmp/ \ No newline at end of file From 9c91027a2c539b0929c24106958c8b8c064e9668 Mon Sep 17 00:00:00 2001 From: RemcoSpigot <106870142+RemcoSpigot@users.noreply.github.com> Date: Tue, 13 Dec 2022 19:20:27 +0100 Subject: [PATCH 11/15] Update Docker image to 1.19.2 and distinct Ubuntu versions \### Added - Add ubuntu-jammy distribution (build + Docker support) - Add ubuntu-focal distribution (build + Docker support) \## Changed - Update Eclipse Temurin Ubuntu image from 17.0.3_7-jre -> 17.0.5_8-jre-(jammy|focal) - Update Eclipse Temurin Debian image from 17.0.3_7-jdk -> 17.0.5_8-jdk - Update Debian slim image from stable-20220622-slim -> stable-20221205-slim - Update Debian slim dependency tzdata 2021a-1+deb11u4 -> 2021a-1+deb11u5 - Update Debian slim dependency curl 7.74.0-1.3+deb11u1 -> 7.74.0-1.3+deb11u3 - Update Debian slim dependency locales 2.31-13+deb11u3 -> 2.31-13+deb11u4 - Docker images tags from Ubuntu generic to specific ((multipaper|multipaper-master) -> (multipaper|multipaper-master)-(jammy|focal)) - Update Alpine init image from Alpine 3.16.0 -> 3.17.0 - Update Alpine init image dependency libintl 0.21-r2 -> 0.21.1-r1 - Update Alpine init image dependency gettext 0.21-r2 -> 0.21.1-r1 - Update Multipaper to 1.19.2 \## Removed - Generic ubuntu distribution --- .github/workflows/multipaper.yml | 71 +++++++++++++++++-- CHANGELOG.md | 19 +++++ build/alpine/Dockerfile.init | 6 +- build/debian-slim/Dockerfile.master | 12 ++-- build/debian-slim/Dockerfile.server | 10 +-- .../Dockerfile.master | 8 +-- .../Dockerfile.server | 6 +- build/ubuntu-jammy/Dockerfile.master | 32 +++++++++ build/ubuntu-jammy/Dockerfile.server | 31 ++++++++ 9 files changed, 167 insertions(+), 28 deletions(-) rename build/{ubuntu => ubuntu-focal}/Dockerfile.master (88%) rename build/{ubuntu => ubuntu-focal}/Dockerfile.server (92%) create mode 100644 build/ubuntu-jammy/Dockerfile.master create mode 100644 build/ubuntu-jammy/Dockerfile.server diff --git a/.github/workflows/multipaper.yml b/.github/workflows/multipaper.yml index efb3f6d..8222348 100644 --- a/.github/workflows/multipaper.yml +++ b/.github/workflows/multipaper.yml @@ -105,7 +105,7 @@ jobs: tags: ${{ steps.multipaper-server-meta.outputs.tags }} labels: ${{ steps.multipaper-server-meta.outputs.labels }} - build-multipaper-docker-ubuntu: + build-multipaper-docker-ubuntu-jammy: runs-on: ubuntu-latest @@ -134,13 +134,13 @@ jobs: id: multipaper-master-meta uses: docker/metadata-action@v4 with: - images: ghcr.io/${{ github.repository_owner }}/multipaper-master + images: ghcr.io/${{ github.repository_owner }}/multipaper-master-jammy - name: Build and push multipaper-master for ${{ env.TARGET_PLATFORMS }} uses: docker/build-push-action@v3 with: - context: ./build/ubuntu - file: build/ubuntu/Dockerfile.master + context: ./build/ubuntu-jammy + file: build/ubuntu-jammy/Dockerfile.master platforms: ${{ env.TARGET_PLATFORMS }} push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.multipaper-master-meta.outputs.tags }} @@ -150,13 +150,70 @@ jobs: id: multipaper-server-meta uses: docker/metadata-action@v4 with: - images: ghcr.io/MultiPaperK8s/multipaper + images: ghcr.io/MultiPaperK8s/multipaper-jammy - name: Build and push multipaper for ${{ env.TARGET_PLATFORMS }} uses: docker/build-push-action@v3 with: - context: ./build/ubuntu - file: build/ubuntu/Dockerfile.server + context: ./build/ubuntu-jammy + file: build/ubuntu-jammy/Dockerfile.server + platforms: ${{ env.TARGET_PLATFORMS }} + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.multipaper-server-meta.outputs.tags }} + labels: ${{ steps.multipaper-server-meta.outputs.labels }} + + build-multipaper-docker-ubuntu-focal: + + runs-on: ubuntu-latest + + steps: + + - uses: actions/checkout@v3 + name: Checkout repository + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + with: + install: true + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Docker meta for MultiPaperK8s/multipaper-master-focal + id: multipaper-master-meta + uses: docker/metadata-action@v4 + with: + images: ghcr.io/${{ github.repository_owner }}/multipaper-master-focal + + - name: Build and push multipaper-master for ${{ env.TARGET_PLATFORMS }} + uses: docker/build-push-action@v3 + with: + context: ./build/ubuntu-focal + file: build/ubuntu-focal/Dockerfile.master + platforms: ${{ env.TARGET_PLATFORMS }} + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.multipaper-master-meta.outputs.tags }} + labels: ${{ steps.multipaper-master-meta.outputs.labels }} + + - name: Docker meta for MultiPaperK8s/multipaper + id: multipaper-server-meta + uses: docker/metadata-action@v4 + with: + images: ghcr.io/MultiPaperK8s/multipaper-focal + + - name: Build and push multipaper for ${{ env.TARGET_PLATFORMS }} + uses: docker/build-push-action@v3 + with: + context: ./build/ubuntu-focal + file: build/ubuntu-focal/Dockerfile.server platforms: ${{ env.TARGET_PLATFORMS }} push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.multipaper-server-meta.outputs.tags }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 3da4a72..cb8b2e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,25 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Added +- Add ubuntu-jammy distribution (build + Docker support) +- Add ubuntu-focal distribution (build + Docker support) + +## Changed +- Update Eclipse Temurin Ubuntu image from 17.0.3_7-jre -> 17.0.5_8-jre-(jammy|focal) +- Update Eclipse Temurin Debian image from 17.0.3_7-jdk -> 17.0.5_8-jdk +- Update Debian slim image from stable-20220622-slim -> stable-20221205-slim +- Update Debian slim dependency tzdata 2021a-1+deb11u4 -> 2021a-1+deb11u5 +- Update Debian slim dependency curl 7.74.0-1.3+deb11u1 -> 7.74.0-1.3+deb11u3 +- Update Debian slim dependency locales 2.31-13+deb11u3 -> 2.31-13+deb11u4 +- Docker images tags from Ubuntu generic to specific ((multipaper|multipaper-master) -> (multipaper|multipaper-master)-(jammy|focal)) +- Update Alpine init image from Alpine 3.16.0 -> 3.17.0 +- Update Alpine init image dependency libintl 0.21-r2 -> 0.21.1-r1 +- Update Alpine init image dependency gettext 0.21-r2 -> 0.21.1-r1 +- Update Multipaper to 1.19.2 + +## Removed +- Generic ubuntu distribution ## [0.1.2] - 2022-06-07 ### Changed diff --git a/build/alpine/Dockerfile.init b/build/alpine/Dockerfile.init index 977223f..d5c4805 100644 --- a/build/alpine/Dockerfile.init +++ b/build/alpine/Dockerfile.init @@ -1,11 +1,11 @@ # syntax=docker/dockerfile:1.4.1 -FROM alpine:3.16.0 +FROM alpine:3.17.0 RUN addgroup --gid 1001 multipaper && \ adduser --home /multipaper --uid 1001 -S -G multipaper multipaper -RUN apk add --no-cache --update libintl=0.21-r2 && \ - apk add --no-cache --virtual build_deps gettext=0.21-r2 && \ +RUN apk add --no-cache --update libintl=0.21.1-r1 && \ + apk add --no-cache --virtual build_deps gettext=0.21.1-r1 && \ cp /usr/bin/envsubst /usr/local/bin/envsubst && \ apk del build_deps diff --git a/build/debian-slim/Dockerfile.master b/build/debian-slim/Dockerfile.master index ea91fab..45306a4 100644 --- a/build/debian-slim/Dockerfile.master +++ b/build/debian-slim/Dockerfile.master @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1.4.1 -FROM eclipse-temurin:17.0.3_7-jdk AS jre-build +FROM eclipse-temurin:17.0.5_8-jdk AS jre-build # Create a custom Java runtime for MultiPaper Server RUN jlink \ @@ -10,7 +10,7 @@ RUN jlink \ --compress=2 \ --output /multipaper/java -FROM debian:stable-20220622-slim +FROM debian:stable-20221205-slim # Initialising language ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' @@ -21,7 +21,7 @@ ENV JAVA_HOME=/opt/java/openjdk \ ## Taken from eclipse-temurin setup, but with version pinning and dumb-init RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata=2021a-1+deb11u4 curl=7.74.0-1.3+deb11u1 ca-certificates=20210119 fontconfig=2.13.1-4.2 locales=2.31-13+deb11u3 binutils=2.35.2-2 dumb-init=1.2.5-1 \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata=2021a-1+deb11u5 curl=7.74.0-1.3+deb11u3 ca-certificates=20210119 fontconfig=2.13.1-4.2 locales=2.31-13+deb11u4 binutils=2.35.2-2 dumb-init=1.2.5-1 \ && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ && locale-gen en_US.UTF-8 \ && rm -rf /var/lib/apt/lists/* @@ -30,9 +30,9 @@ RUN apt-get update \ COPY --from=jre-build /multipaper/java $JAVA_HOME # Versioning -ARG MULTIPAPER_VERSION=1.18.2 -ARG MULTIPAPER_BUILD=95 -ARG MASTER_VERSION=2.8.8 +ARG MULTIPAPER_VERSION=1.19.2 +ARG MULTIPAPER_BUILD=37 +ARG MASTER_VERSION=2.10.1 # Setup groups RUN addgroup --gid 1001 multipaper && \ diff --git a/build/debian-slim/Dockerfile.server b/build/debian-slim/Dockerfile.server index 00d30b6..21e0b30 100644 --- a/build/debian-slim/Dockerfile.server +++ b/build/debian-slim/Dockerfile.server @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:1.4.1 -FROM eclipse-temurin:17.0.3_7-jdk AS jre-build +FROM eclipse-temurin:17.0.5_8-jdk AS jre-build # Create a custom Java runtime for MultiPaper Server RUN jlink \ @@ -10,7 +10,7 @@ RUN jlink \ --compress=2 \ --output /multipaper/java -FROM debian:stable-20220622-slim +FROM debian:stable-20221205-slim # Initialising language ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' @@ -21,7 +21,7 @@ ENV JAVA_HOME=/opt/java/openjdk \ ## Taken from eclipse-temurin setup, but with version pinning and dumb-init RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata=2021a-1+deb11u4 curl=7.74.0-1.3+deb11u1 ca-certificates=20210119 fontconfig=2.13.1-4.2 locales=2.31-13+deb11u3 binutils=2.35.2-2 dumb-init=1.2.5-1 \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata=2021a-1+deb11u5 curl=7.74.0-1.3+deb11u3 ca-certificates=20210119 fontconfig=2.13.1-4.2 locales=2.31-13+deb11u4 binutils=2.35.2-2 dumb-init=1.2.5-1 \ && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ && locale-gen en_US.UTF-8 \ && rm -rf /var/lib/apt/lists/* @@ -30,8 +30,8 @@ RUN apt-get update \ COPY --from=jre-build /multipaper/java $JAVA_HOME # Versioning -ARG VERSION=1.18.2 -ARG BUILD=95 +ARG VERSION=1.19.2 +ARG BUILD=37 ARG FULL_VERSION="$VERSION-$BUILD" # Setup groups diff --git a/build/ubuntu/Dockerfile.master b/build/ubuntu-focal/Dockerfile.master similarity index 88% rename from build/ubuntu/Dockerfile.master rename to build/ubuntu-focal/Dockerfile.master index 9f4a759..fa83bb9 100644 --- a/build/ubuntu/Dockerfile.master +++ b/build/ubuntu-focal/Dockerfile.master @@ -1,10 +1,10 @@ # syntax=docker/dockerfile:1.4.1 -FROM eclipse-temurin:17.0.3_7-jre +FROM eclipse-temurin:17.0.5_8-jre-focal # Versioning -ARG MULTIPAPER_VERSION=1.18.2 -ARG MULTIPAPER_BUILD=95 -ARG MASTER_VERSION=2.8.8 +ARG MULTIPAPER_VERSION=1.19.2 +ARG MULTIPAPER_BUILD=37 +ARG MASTER_VERSION=2.10.1 # Setup groups and install dumb init RUN addgroup --gid 1001 multipaper && \ diff --git a/build/ubuntu/Dockerfile.server b/build/ubuntu-focal/Dockerfile.server similarity index 92% rename from build/ubuntu/Dockerfile.server rename to build/ubuntu-focal/Dockerfile.server index 31ff248..d454a48 100644 --- a/build/ubuntu/Dockerfile.server +++ b/build/ubuntu-focal/Dockerfile.server @@ -1,9 +1,9 @@ # syntax=docker/dockerfile:1.4.1 -FROM eclipse-temurin:17.0.3_7-jre +FROM eclipse-temurin:17.0.5_8-jre-focal # Versioning -ARG VERSION=1.18.2 -ARG BUILD=95 +ARG VERSION=1.19.2 +ARG BUILD=37 ARG FULL_VERSION="$VERSION-$BUILD" # Setup groups and install dumb init diff --git a/build/ubuntu-jammy/Dockerfile.master b/build/ubuntu-jammy/Dockerfile.master new file mode 100644 index 0000000..711b6d4 --- /dev/null +++ b/build/ubuntu-jammy/Dockerfile.master @@ -0,0 +1,32 @@ +# syntax=docker/dockerfile:1.4.1 +FROM eclipse-temurin:17.0.5_8-jre-jammy + +# Versioning +ARG MULTIPAPER_VERSION=1.19.2 +ARG MULTIPAPER_BUILD=37 +ARG MASTER_VERSION=2.10.1 + +# Setup groups and install dumb init +RUN addgroup --gid 1001 multipaper && \ + adduser --system --home /multipaper --uid 1001 --gid 1001 multipaper && \ + apt update && apt install -y --no-install-recommends dumb-init=1.2.5-2 + +# Use the multipaper's home directory as our work directory +WORKDIR /multipaper + +# Switch from root to multipaper +USER multipaper + +# Download multipaper +ADD --chown=multipaper:multipaper https://multipaper.io/api/v2/projects/multipaper/versions/$MULTIPAPER_VERSION/builds/$MULTIPAPER_BUILD/downloads/MultiPaper-Master-$MASTER_VERSION-all.jar multipaper-master.jar + +# Expose the ports of the master server and proxy +EXPOSE 35353/tcp +EXPOSE 25565/tcp + +# Start the process using dumb-init +ENTRYPOINT ["/usr/bin/dumb-init", "--"] +CMD ["java", "-jar", "/multipaper/multipaper-master.jar"] + +# Switch to the data directory +WORKDIR /multipaper/data \ No newline at end of file diff --git a/build/ubuntu-jammy/Dockerfile.server b/build/ubuntu-jammy/Dockerfile.server new file mode 100644 index 0000000..5251bc7 --- /dev/null +++ b/build/ubuntu-jammy/Dockerfile.server @@ -0,0 +1,31 @@ +# syntax=docker/dockerfile:1.4.1 +FROM eclipse-temurin:17.0.5_8-jre-jammy + +# Versioning +ARG VERSION=1.19.2 +ARG BUILD=37 +ARG FULL_VERSION="$VERSION-$BUILD" + +# Setup groups and install dumb init +RUN addgroup --gid 1001 multipaper && \ + adduser --system --home /multipaper --uid 1001 --gid 1001 multipaper && \ + apt update && apt install -y --no-install-recommends dumb-init=1.2.5-2 + +# Use the multipaper's home directory as our work directory +WORKDIR /multipaper + +# Switch from root to multipaper +USER multipaper + +# Download multipaper +ADD --chown=multipaper:multipaper https://multipaper.io/api/v2/projects/multipaper/versions/$VERSION/builds/$BUILD/downloads/multipaper-$FULL_VERSION.jar multipaper.jar + +# Expose the required ports +EXPOSE 25565/tcp + +# Start the process using dumb-init +ENTRYPOINT ["/usr/bin/dumb-init", "--"] +CMD ["java", "-jar", "/multipaper/multipaper.jar"] + +# Switch to the data directory +WORKDIR /multipaper/data \ No newline at end of file From 2344f25c7ad26ed731a98f18af8a3052a2f35076 Mon Sep 17 00:00:00 2001 From: RemcoSpigot <106870142+RemcoSpigot@users.noreply.github.com> Date: Tue, 13 Dec 2022 19:26:42 +0100 Subject: [PATCH 12/15] Downgrade Ubuntu focal dumb-init dependency (#17) \### Changed - Downgrade Ubuntu focal dependency dumb-init 1.2.5-2 -> 1.2.2-1.2 --- CHANGELOG.md | 5 +++-- build/ubuntu-focal/Dockerfile.master | 2 +- build/ubuntu-focal/Dockerfile.server | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cb8b2e3..7e35598 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add ubuntu-jammy distribution (build + Docker support) - Add ubuntu-focal distribution (build + Docker support) -## Changed +### Changed - Update Eclipse Temurin Ubuntu image from 17.0.3_7-jre -> 17.0.5_8-jre-(jammy|focal) - Update Eclipse Temurin Debian image from 17.0.3_7-jdk -> 17.0.5_8-jdk - Update Debian slim image from stable-20220622-slim -> stable-20221205-slim @@ -20,9 +20,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Update Alpine init image from Alpine 3.16.0 -> 3.17.0 - Update Alpine init image dependency libintl 0.21-r2 -> 0.21.1-r1 - Update Alpine init image dependency gettext 0.21-r2 -> 0.21.1-r1 +- Downgrade Ubuntu focal dependency dumb-init 1.2.5-2 -> 1.2.2-1.2 - Update Multipaper to 1.19.2 -## Removed +### Removed - Generic ubuntu distribution ## [0.1.2] - 2022-06-07 diff --git a/build/ubuntu-focal/Dockerfile.master b/build/ubuntu-focal/Dockerfile.master index fa83bb9..257eb2d 100644 --- a/build/ubuntu-focal/Dockerfile.master +++ b/build/ubuntu-focal/Dockerfile.master @@ -9,7 +9,7 @@ ARG MASTER_VERSION=2.10.1 # Setup groups and install dumb init RUN addgroup --gid 1001 multipaper && \ adduser --system --home /multipaper --uid 1001 --gid 1001 multipaper && \ - apt update && apt install -y --no-install-recommends dumb-init=1.2.5-2 + apt update && apt install -y --no-install-recommends dumb-init=1.2.2-1.2 # Use the multipaper's home directory as our work directory WORKDIR /multipaper diff --git a/build/ubuntu-focal/Dockerfile.server b/build/ubuntu-focal/Dockerfile.server index d454a48..5625902 100644 --- a/build/ubuntu-focal/Dockerfile.server +++ b/build/ubuntu-focal/Dockerfile.server @@ -9,7 +9,7 @@ ARG FULL_VERSION="$VERSION-$BUILD" # Setup groups and install dumb init RUN addgroup --gid 1001 multipaper && \ adduser --system --home /multipaper --uid 1001 --gid 1001 multipaper && \ - apt update && apt install -y --no-install-recommends dumb-init=1.2.5-2 + apt update && apt install -y --no-install-recommends dumb-init=1.2.2-1.2 # Use the multipaper's home directory as our work directory WORKDIR /multipaper From c7cc1ea16eba7e49cc0b3eeb5a5c04ad67b5ec20 Mon Sep 17 00:00:00 2001 From: RemcoSpigot <106870142+RemcoSpigot@users.noreply.github.com> Date: Tue, 13 Dec 2022 19:30:38 +0100 Subject: [PATCH 13/15] Attempt to build Debian slim using newer tzdata (#17) \### Changed - Update Debian slim dependency tzdata (using bullseye-updates repository) 2021a-1+deb11u4 -> 2021a-1+deb11u8 --- CHANGELOG.md | 2 +- build/debian-slim/Dockerfile.master | 2 +- build/debian-slim/Dockerfile.server | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e35598..e1296cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Update Eclipse Temurin Ubuntu image from 17.0.3_7-jre -> 17.0.5_8-jre-(jammy|focal) - Update Eclipse Temurin Debian image from 17.0.3_7-jdk -> 17.0.5_8-jdk - Update Debian slim image from stable-20220622-slim -> stable-20221205-slim -- Update Debian slim dependency tzdata 2021a-1+deb11u4 -> 2021a-1+deb11u5 +- Update Debian slim dependency tzdata (using bullseye-updates repository) 2021a-1+deb11u4 -> 2021a-1+deb11u8 - Update Debian slim dependency curl 7.74.0-1.3+deb11u1 -> 7.74.0-1.3+deb11u3 - Update Debian slim dependency locales 2.31-13+deb11u3 -> 2.31-13+deb11u4 - Docker images tags from Ubuntu generic to specific ((multipaper|multipaper-master) -> (multipaper|multipaper-master)-(jammy|focal)) diff --git a/build/debian-slim/Dockerfile.master b/build/debian-slim/Dockerfile.master index 45306a4..a02cdde 100644 --- a/build/debian-slim/Dockerfile.master +++ b/build/debian-slim/Dockerfile.master @@ -21,7 +21,7 @@ ENV JAVA_HOME=/opt/java/openjdk \ ## Taken from eclipse-temurin setup, but with version pinning and dumb-init RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata=2021a-1+deb11u5 curl=7.74.0-1.3+deb11u3 ca-certificates=20210119 fontconfig=2.13.1-4.2 locales=2.31-13+deb11u4 binutils=2.35.2-2 dumb-init=1.2.5-1 \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata=2021a-1+deb11u8 curl=7.74.0-1.3+deb11u3 ca-certificates=20210119 fontconfig=2.13.1-4.2 locales=2.31-13+deb11u4 binutils=2.35.2-2 dumb-init=1.2.5-1 \ && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ && locale-gen en_US.UTF-8 \ && rm -rf /var/lib/apt/lists/* diff --git a/build/debian-slim/Dockerfile.server b/build/debian-slim/Dockerfile.server index 21e0b30..8fa4dd2 100644 --- a/build/debian-slim/Dockerfile.server +++ b/build/debian-slim/Dockerfile.server @@ -21,7 +21,7 @@ ENV JAVA_HOME=/opt/java/openjdk \ ## Taken from eclipse-temurin setup, but with version pinning and dumb-init RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata=2021a-1+deb11u5 curl=7.74.0-1.3+deb11u3 ca-certificates=20210119 fontconfig=2.13.1-4.2 locales=2.31-13+deb11u4 binutils=2.35.2-2 dumb-init=1.2.5-1 \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata=2021a-1+deb11u8 curl=7.74.0-1.3+deb11u3 ca-certificates=20210119 fontconfig=2.13.1-4.2 locales=2.31-13+deb11u4 binutils=2.35.2-2 dumb-init=1.2.5-1 \ && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ && locale-gen en_US.UTF-8 \ && rm -rf /var/lib/apt/lists/* From 2a384b7ffce9e85b1f95b613822f48036709f8b6 Mon Sep 17 00:00:00 2001 From: RemcoSpigot <106870142+RemcoSpigot@users.noreply.github.com> Date: Tue, 13 Dec 2022 19:36:46 +0100 Subject: [PATCH 14/15] Building Debian Slim now only for AMD64 and Aarch64 (#17) \###Changed - Building Debian Slim now only for AMD64 and ARM64v8 (Aarch64) --- .github/workflows/multipaper.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/multipaper.yml b/.github/workflows/multipaper.yml index 8222348..1573ac7 100644 --- a/.github/workflows/multipaper.yml +++ b/.github/workflows/multipaper.yml @@ -3,6 +3,7 @@ name: Build Docker Images on: [push, pull_request] env: TARGET_PLATFORMS_ALPINE: linux/amd64,linux/arm64,linux/arm/v7 + TARGET_PLATFORMS_DEBIAN: linux/amd64,linux/arm64 TARGET_PLATFORMS: linux/amd64,linux/arm64,linux/arm/v7 jobs: @@ -79,12 +80,12 @@ jobs: with: images: ghcr.io/${{ github.repository_owner }}/multipaper-master-debian-unstable - - name: Build and push multipaper-master for ${{ env.TARGET_PLATFORMS }} + - name: Build and push multipaper-master for ${{ env.TARGET_PLATFORMS_DEBIAN }} uses: docker/build-push-action@v3 with: context: ./build/debian-slim file: build/debian-slim/Dockerfile.master - platforms: ${{ env.TARGET_PLATFORMS }} + platforms: ${{ env.TARGET_PLATFORMS_DEBIAN }} push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.multipaper-master-meta.outputs.tags }} labels: ${{ steps.multipaper-master-meta.outputs.labels }} @@ -95,12 +96,12 @@ jobs: with: images: ghcr.io/MultiPaperK8s/multipaper-debian-unstable - - name: Build and push multipaper for ${{ env.TARGET_PLATFORMS }} + - name: Build and push multipaper for ${{ env.TARGET_PLATFORMS_DEBIAN }} uses: docker/build-push-action@v3 with: context: ./build/debian-slim file: build/debian-slim/Dockerfile.server - platforms: ${{ env.TARGET_PLATFORMS }} + platforms: ${{ env.TARGET_PLATFORMS_DEBIAN }} push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.multipaper-server-meta.outputs.tags }} labels: ${{ steps.multipaper-server-meta.outputs.labels }} From 0d947de6a9e9d8ccc304a6307eb4807db60cdc66 Mon Sep 17 00:00:00 2001 From: RemcoSpigot <106870142+RemcoSpigot@users.noreply.github.com> Date: Wed, 14 Dec 2022 00:09:16 +0100 Subject: [PATCH 15/15] Update package repository name to dynamically change with repo owner --- .github/workflows/multipaper.yml | 2 +- CHANGELOG.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/multipaper.yml b/.github/workflows/multipaper.yml index 1573ac7..88055ed 100644 --- a/.github/workflows/multipaper.yml +++ b/.github/workflows/multipaper.yml @@ -94,7 +94,7 @@ jobs: id: multipaper-server-meta uses: docker/metadata-action@v4 with: - images: ghcr.io/MultiPaperK8s/multipaper-debian-unstable + images: ghcr.io/${{ github.repository_owner }}/multipaper-debian-unstable - name: Build and push multipaper for ${{ env.TARGET_PLATFORMS_DEBIAN }} uses: docker/build-push-action@v3 diff --git a/CHANGELOG.md b/CHANGELOG.md index e1296cf..18c1393 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Update Alpine init image dependency libintl 0.21-r2 -> 0.21.1-r1 - Update Alpine init image dependency gettext 0.21-r2 -> 0.21.1-r1 - Downgrade Ubuntu focal dependency dumb-init 1.2.5-2 -> 1.2.2-1.2 +- Building Debian Slim now only for AMD64 and ARM64v8 (Aarch64) - Update Multipaper to 1.19.2 ### Removed