mirror of
https://github.com/NATroutter/egg-hytale.git
synced 2026-03-01 11:21:13 +03:00
72 lines
1.9 KiB
Docker
72 lines
1.9 KiB
Docker
# Use Eclipse Temurin JDK 25 on Ubuntu Noble as the base image
|
|
FROM --platform=$TARGETOS/$TARGETARCH eclipse-temurin:25-jdk-noble
|
|
|
|
# Metadata
|
|
LABEL author="NATroutter" maintainer="contact@natroutter.fi"
|
|
LABEL org.opencontainers.image.source="https://github.com/NATroutter/egg-hytale"
|
|
LABEL org.opencontainers.image.description="Container for running hytale game servers"
|
|
LABEL org.opencontainers.image.licenses=MIT
|
|
|
|
# Switch to root user for installation
|
|
USER root
|
|
|
|
# Install necessary dependencies
|
|
RUN apt update -y \
|
|
&& apt install -y \
|
|
curl \
|
|
lsof \
|
|
ca-certificates \
|
|
openssl \
|
|
git \
|
|
tar \
|
|
sqlite3 \
|
|
fontconfig \
|
|
tzdata \
|
|
iproute2 \
|
|
libfreetype6 \
|
|
tini \
|
|
zip \
|
|
unzip \
|
|
ncurses-bin \
|
|
jq
|
|
|
|
# Copy start.sh to /usr/local/bin (protected location, won't be overridden by volume mounts)
|
|
COPY --chmod=755 ./start.sh /usr/local/bin/start.sh
|
|
|
|
# Strip Windows line endings (\r) just in case the file was edited on Windows
|
|
RUN sed -i 's/\r$//' /usr/local/bin/start.sh
|
|
|
|
# Copy entrypoint script to root
|
|
COPY --chmod=755 ./entrypoint.sh /entrypoint.sh
|
|
|
|
# Strip Windows line endings (\r) just in case the file was edited on Windows
|
|
RUN sed -i 's/\r$//' /entrypoint.sh
|
|
|
|
# Create egg-hytale folder
|
|
RUN mkdir -p /egg-hytale
|
|
|
|
# Copy lib directory
|
|
COPY --chmod=755 ./lib /egg-hytale/lib
|
|
RUN sed -i 's/\r$//' /egg-hytale/lib/*.sh
|
|
|
|
# Create dmidecode shim for Docker usage
|
|
COPY --chmod=755 ./lib/dmidecode /usr/local/bin/dmidecode
|
|
RUN sed -i 's/\r$//' /usr/local/bin/dmidecode
|
|
|
|
RUN sed -i 's/\r$//' /entrypoint.sh
|
|
|
|
# Create the container user
|
|
RUN useradd -m -d /home/container -s /bin/bash container
|
|
|
|
# Switch to the container user
|
|
USER container
|
|
ENV USER=container HOME=/home/container
|
|
WORKDIR /home/container
|
|
|
|
# Ensure clean shutdown
|
|
STOPSIGNAL SIGINT
|
|
|
|
# Use tini as init process to handle signals correctly
|
|
ENTRYPOINT ["/usr/bin/tini", "-g", "--"]
|
|
CMD ["/entrypoint.sh"]
|