35 lines
1.2 KiB
Docker
35 lines
1.2 KiB
Docker
ARG VELOCITY_VERSION=latest
|
|
ARG JAVA_VERSION=21
|
|
|
|
FROM alpine AS tools
|
|
RUN apk add --update-cache --no-cache \
|
|
curl \
|
|
jq
|
|
|
|
FROM tools AS waterfall
|
|
RUN if test -z "${VELOCITY_VERSION}" || test "${VELOCITY_VERSION}" == "latest"; then \
|
|
echo "### Fetching latest version"; \
|
|
WATERFALL_VERSION=$(\
|
|
curl -sl https://fill.papermc.io/v3/projects/velocity | \
|
|
jq -r '.versions["3.0.0"][0]' \
|
|
); \
|
|
fi && \
|
|
echo "### Using version <${VELOCITY_VERSION}>" && \
|
|
DOWNLOAD_URL=$(\
|
|
curl -sl "https://fill.papermc.io/v3/projects/velocity/versions/${WATERFALL_VERSION}/builds" | \
|
|
jq -r 'first(.[] | select(.channel == "STABLE") | .downloads."server:default".url) // "null"' \
|
|
) && \
|
|
echo "### Downloading <${DOWNLOAD_URL}>" && \
|
|
curl -lfso velocity.jar "${DOWNLOAD_URL}"
|
|
|
|
FROM eclipse-temurin:${JAVA_VERSION}
|
|
COPY --from=waterfall /velocity.jar /opt/velocity/
|
|
WORKDIR /velocity
|
|
VOLUME /velocity
|
|
EXPOSE 25565
|
|
ENV JAVA_MEM=1G
|
|
CMD java -Xms${JAVA_MEM} -Xmx${JAVA_MEM} \
|
|
-XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions \
|
|
-XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -XX:MaxInlineLevel=15 \
|
|
-jar /opt/velocity/velocity.jar
|