Files
2024-09-12 16:23:07 +02:00

43 lines
1.3 KiB
Docker

FROM ubuntu:latest AS builder
# Install Paper dependencies
RUN apt-get update && apt-get install -y \
curl \
wget \
jq \
bash \
gnupg \
ca-certificates \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /minecraft
# Fetch the latest PaperMC version and build dynamically
RUN PAPER_VERSION=$(curl -s https://papermc.io/api/v2/projects/paper | jq -r '.versions[-1]') \
&& PAPER_BUILD=$(curl -s https://papermc.io/api/v2/projects/paper/versions/$PAPER_VERSION | jq -r '.builds[-1]') \
&& wget -O paper.jar https://papermc.io/api/v2/projects/paper/versions/$PAPER_VERSION/builds/$PAPER_BUILD/downloads/paper-$PAPER_VERSION-$PAPER_BUILD.jar
# Accept EULA
RUN echo "eula=true" > eula.txt
FROM alpine:latest AS runner
COPY --from=builder /minecraft /minecraft
RUN apk add --no-cache openjdk21-jre eudev libstdc++
RUN addgroup -S mcgroup && adduser -S mcuser -G mcgroup -s /bin/sh \
&& chown -R mcuser:mcgroup /minecraft \
&& chmod g+s /minecraft
WORKDIR /minecraft
EXPOSE 25565
EXPOSE 8123
CMD /bin/sh -c ' \
echo Fixing ownership of minecraft directory... && \
chown -R mcuser:mcgroup /minecraft && \
echo Starting minecraft server as mcuser && \
su - mcuser -c "cd /minecraft/ && java -Xmx2G -Xms512M -jar /minecraft/paper.jar nogui"'