Skip to content
Open
42 changes: 33 additions & 9 deletions amd64.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,32 @@
# Author: James A. Chambers - https://jamesachambers.com/minecraft-java-bedrock-server-together-geyser-floodgate/
# GitHub Repository: https://github.com/TheRemote/Legendary-Java-Minecraft-Geyser-Floodgate

# Use Ubuntu rolling version for builder
FROM ubuntu:rolling AS builder

# Update apt
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install qemu-user-static binfmt-support apt-utils -yqq && rm -rf /var/cache/apt/*

# Use Ubuntu rolling version
FROM --platform=linux/amd64 ubuntu:rolling

# Fetch dependencies
RUN apt update && DEBIAN_FRONTEND=noninteractive apt-get install openjdk-21-jre-headless tzdata sudo curl unzip net-tools gawk openssl findutils pigz libcurl4 libc6 libcrypt1 apt-utils libcurl4-openssl-dev ca-certificates binfmt-support nano -yqq && rm -rf /var/cache/apt/*
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -yqq \
apt-utils \
binfmt-support \
ca-certificates \
curl \
gawk \
findutils \
jq \
libcurl4 \
libcurl4-openssl-dev \
libc6 \
libcrypt1 \
net-tools \
nano \
openjdk-21-jre-headless \
openssl \
pigz \
tzdata \
unzip \
vim && \
rm -rf /var/cache/apt/*

# Set port environment variable
ENV Port=25565
Expand All @@ -21,7 +36,7 @@ ENV Port=25565
ENV BedrockPort=19132

# Optional maximum memory Minecraft is allowed to use
ENV MaxMemory=
ENV MaxMemory=""

# Optional Paper Minecraft Version override
ENV Version="1.21.3"
Expand Down Expand Up @@ -49,12 +64,21 @@ EXPOSE 25565/tcp
EXPOSE 19132/tcp
EXPOSE 19132/udp

# Copy scripts to minecraftbe folder and make them executable
# Copy files into image and make the scripts executable
RUN mkdir /scripts
COPY *.sh /scripts/
COPY *.yml /scripts/
COPY server.properties /scripts/
RUN chmod -R +x /scripts/*.sh

# Create the minecraft user/group and set the container to run as the minecraft user
RUN groupadd -g 999 minecraft && \
useradd -m -u 999 -g 999 -s /bin/bash minecraft && \
mkdir /minecraft && \
chown minecraft:minecraft /minecraft && \
chmod 777 /minecraft
USER minecraft
WORKDIR /minecraft

# Set entrypoint to start.sh script
ENTRYPOINT ["/bin/bash", "/scripts/start.sh"]
42 changes: 37 additions & 5 deletions arm64v8.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@
# Use Ubuntu rolling version for builder
FROM ubuntu:rolling AS builder

# Update apt
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install qemu-user-static binfmt-support apt-utils -yqq && rm -rf /var/cache/apt/*
# Prep qemu files
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -yqq apt-utils binfmt-support qemu-user-static && \
rm -rf /var/cache/apt/*

# Use Ubuntu rolling version
FROM --platform=linux/arm64/v8 ubuntu:rolling
Expand All @@ -15,7 +17,28 @@ FROM --platform=linux/arm64/v8 ubuntu:rolling
COPY --from=builder /usr/bin/qemu-aarch64-static /usr/bin/

# Fetch dependencies
RUN apt update && DEBIAN_FRONTEND=noninteractive apt-get install openjdk-21-jre-headless tzdata sudo curl unzip net-tools gawk openssl findutils pigz libcurl4 libc6 libcrypt1 apt-utils libcurl4-openssl-dev ca-certificates binfmt-support nano -yqq && rm -rf /var/cache/apt/*
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -yqq \
apt-utils \
binfmt-support \
ca-certificates \
curl \
gawk \
findutils \
jq \
libcurl4 \
libcurl4-openssl-dev \
libc6 \
libcrypt1 \
net-tools \
nano \
openjdk-21-jre-headless \
openssl \
pigz \
tzdata \
unzip \
vim && \
rm -rf /var/cache/apt/*

# Set port environment variable
ENV Port=25565
Expand All @@ -24,7 +47,7 @@ ENV Port=25565
ENV BedrockPort=19132

# Optional maximum memory Minecraft is allowed to use
ENV MaxMemory=
ENV MaxMemory=""

# Optional Paper Minecraft Version override
ENV Version="1.21.3"
Expand Down Expand Up @@ -52,12 +75,21 @@ EXPOSE 25565/tcp
EXPOSE 19132/tcp
EXPOSE 19132/udp

# Copy scripts to minecraftbe folder and make them executable
# Copy files into image and make the scripts executable
RUN mkdir /scripts
COPY *.sh /scripts/
COPY *.yml /scripts/
COPY server.properties /scripts/
RUN chmod -R +x /scripts/*.sh

# Create the minecraft user/group and set the container to run as the minecraft user
RUN groupadd -g 999 minecraft && \
useradd -m -u 999 -g 999 -s /bin/bash minecraft && \
mkdir /minecraft && \
chown minecraft:minecraft /minecraft && \
chmod 777 /minecraft
USER minecraft
WORKDIR /minecraft

# Set entrypoint to start.sh script
ENTRYPOINT ["/bin/bash", "/scripts/start.sh"]
42 changes: 37 additions & 5 deletions armv7.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@
# Use Ubuntu rolling version for builder
FROM ubuntu:rolling AS builder

# Update apt
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install qemu-user-static binfmt-support apt-utils -yqq && rm -rf /var/cache/apt/*
# Prep qemu files
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -yqq apt-utils binfmt-support qemu-user-static && \
rm -rf /var/cache/apt/*

# Use Ubuntu rolling version
FROM --platform=linux/arm/v7 ubuntu:rolling
Expand All @@ -15,7 +17,28 @@ FROM --platform=linux/arm/v7 ubuntu:rolling
COPY --from=builder /usr/bin/qemu-arm-static /usr/bin/

# Fetch dependencies
RUN apt update && DEBIAN_FRONTEND=noninteractive apt-get install openjdk-21-jre-headless tzdata sudo curl unzip net-tools gawk openssl findutils pigz libcurl4t64 libc6 libcrypt1 apt-utils libcurl4-openssl-dev ca-certificates binfmt-support nano -yqq && rm -rf /var/cache/apt/*
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -yqq \
apt-utils \
binfmt-support \
ca-certificates \
curl \
gawk \
findutils \
jq \
libcurl4 \
libcurl4-openssl-dev \
libc6 \
libcrypt1 \
net-tools \
nano \
openjdk-21-jre-headless \
openssl \
pigz \
tzdata \
unzip \
vim && \
rm -rf /var/cache/apt/*

# Set port environment variable
ENV Port=25565
Expand All @@ -24,7 +47,7 @@ ENV Port=25565
ENV BedrockPort=19132

# Optional maximum memory Minecraft is allowed to use
ENV MaxMemory=
ENV MaxMemory=""

# Optional Paper Minecraft Version override
ENV Version="1.21.3"
Expand Down Expand Up @@ -52,12 +75,21 @@ EXPOSE 25565/tcp
EXPOSE 19132/tcp
EXPOSE 19132/udp

# Copy scripts to minecraftbe folder and make them executable
# Copy files into image and make the scripts executable
RUN mkdir /scripts
COPY *.sh /scripts/
COPY *.yml /scripts/
COPY server.properties /scripts/
RUN chmod -R +x /scripts/*.sh

# Create the minecraft user/group and set the container to run as the minecraft user
RUN groupadd -g 999 minecraft && \
useradd -m -u 999 -g 999 -s /bin/bash minecraft && \
mkdir /minecraft && \
chown minecraft:minecraft /minecraft && \
chmod 777 /minecraft
USER minecraft
WORKDIR /minecraft

# Set entrypoint to start.sh script
ENTRYPOINT ["/bin/bash", "/scripts/start.sh"]
44 changes: 38 additions & 6 deletions ppc64le.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@
# Author: James A. Chambers - https://jamesachambers.com/minecraft-java-bedrock-server-together-geyser-floodgate/
# GitHub Repository: https://github.com/TheRemote/Legendary-Java-Minecraft-Geyser-Floodgate

# Use latest Ubuntu version for builder
# Use Ubuntu rolling version for builder
FROM ubuntu:rolling AS builder

# Update apt
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install qemu-user-static binfmt-support apt-utils -yqq && rm -rf /var/cache/apt/*
# Prep qemu files
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -yqq apt-utils binfmt-support qemu-user-static && \
rm -rf /var/cache/apt/*

# Use Ubuntu rolling version
FROM --platform=linux/ppc64le ubuntu:rolling
Expand All @@ -15,7 +17,28 @@ FROM --platform=linux/ppc64le ubuntu:rolling
COPY --from=builder /usr/bin/qemu-ppc64le-static /usr/bin/

# Fetch dependencies
RUN apt update && DEBIAN_FRONTEND=noninteractive apt-get install openjdk-21-jre-headless tzdata sudo curl unzip net-tools gawk openssl findutils pigz libcurl4 libc6 libcrypt1 apt-utils libcurl4-openssl-dev ca-certificates binfmt-support nano -yqq && rm -rf /var/cache/apt/*
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -yqq \
apt-utils \
binfmt-support \
ca-certificates \
curl \
gawk \
findutils \
jq \
libcurl4 \
libcurl4-openssl-dev \
libc6 \
libcrypt1 \
net-tools \
nano \
openjdk-21-jre-headless \
openssl \
pigz \
tzdata \
unzip \
vim && \
rm -rf /var/cache/apt/*

# Set port environment variable
ENV Port=25565
Expand All @@ -24,7 +47,7 @@ ENV Port=25565
ENV BedrockPort=19132

# Optional maximum memory Minecraft is allowed to use
ENV MaxMemory=
ENV MaxMemory=""

# Optional Paper Minecraft Version override
ENV Version="1.21.3"
Expand Down Expand Up @@ -52,12 +75,21 @@ EXPOSE 25565/tcp
EXPOSE 19132/tcp
EXPOSE 19132/udp

# Copy scripts to minecraftbe folder and make them executable
# Copy files into image and make the scripts executable
RUN mkdir /scripts
COPY *.sh /scripts/
COPY *.yml /scripts/
COPY server.properties /scripts/
RUN chmod -R +x /scripts/*.sh

# Create the minecraft user/group and set the container to run as the minecraft user
RUN groupadd -g 999 minecraft && \
useradd -m -u 999 -g 999 -s /bin/bash minecraft && \
mkdir /minecraft && \
chown minecraft:minecraft /minecraft && \
chmod 777 /minecraft
USER minecraft
WORKDIR /minecraft

# Set entrypoint to start.sh script
ENTRYPOINT ["/bin/bash", "/scripts/start.sh"]
46 changes: 39 additions & 7 deletions riscv64.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,43 @@
# Author: James A. Chambers - https://jamesachambers.com/minecraft-java-bedrock-server-together-geyser-floodgate/
# GitHub Repository: https://github.com/TheRemote/Legendary-Java-Minecraft-Geyser-Floodgate

# Use latest Ubuntu version for builder
# Use Ubuntu rolling version for builder
FROM ubuntu:rolling AS builder

# Update apt
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install qemu-user-static binfmt-support apt-utils -yqq && rm -rf /var/cache/apt/*
# Prep qemu files
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -yqq apt-utils binfmt-support qemu-user-static && \
rm -rf /var/cache/apt/*

# Use current Ubuntu LTS version
# Use Ubuntu rolling version
FROM --platform=linux/riscv64 ubuntu:rolling

# Add QEMU
COPY --from=builder /usr/bin/qemu-riscv64-static /usr/bin/

# Fetch dependencies
RUN apt update && DEBIAN_FRONTEND=noninteractive apt-get install openjdk-21-jre-headless tzdata sudo curl unzip net-tools gawk openssl findutils pigz libcurl4 libc6 libcrypt1 apt-utils libcurl4-openssl-dev ca-certificates binfmt-support nano -yqq && rm -rf /var/cache/apt/*
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -yqq \
apt-utils \
binfmt-support \
ca-certificates \
curl \
gawk \
findutils \
jq \
libcurl4 \
libcurl4-openssl-dev \
libc6 \
libcrypt1 \
net-tools \
nano \
openjdk-21-jre-headless \
openssl \
pigz \
tzdata \
unzip \
vim && \
rm -rf /var/cache/apt/*

# Set port environment variable
ENV Port=25565
Expand All @@ -24,7 +47,7 @@ ENV Port=25565
ENV BedrockPort=19132

# Optional maximum memory Minecraft is allowed to use
ENV MaxMemory=
ENV MaxMemory=""

# Optional Paper Minecraft Version override
ENV Version="1.21.3"
Expand Down Expand Up @@ -52,12 +75,21 @@ EXPOSE 25565/tcp
EXPOSE 19132/tcp
EXPOSE 19132/udp

# Copy scripts to minecraftbe folder and make them executable
# Copy files into image and make the scripts executable
RUN mkdir /scripts
COPY *.sh /scripts/
COPY *.yml /scripts/
COPY server.properties /scripts/
RUN chmod -R +x /scripts/*.sh

# Create the minecraft user/group and set the container to run as the minecraft user
RUN groupadd -g 999 minecraft && \
useradd -m -u 999 -g 999 -s /bin/bash minecraft && \
mkdir /minecraft && \
chown minecraft:minecraft /minecraft && \
chmod 777 /minecraft
USER minecraft
WORKDIR /minecraft

# Set entrypoint to start.sh script
ENTRYPOINT ["/bin/bash", "/scripts/start.sh"]
Loading