54 lines
1.2 KiB
Docker
54 lines
1.2 KiB
Docker
FROM debian:bookworm-slim
|
|
|
|
ARG FACTORIO_VERSION
|
|
|
|
ENV FACTORIO_HOME=/opt/factorio \
|
|
FACTORIO_DATA=/factorio
|
|
|
|
RUN set -eux; \
|
|
apt-get update; \
|
|
apt-get install -y --no-install-recommends \
|
|
ca-certificates \
|
|
curl \
|
|
xz-utils \
|
|
libstdc++6 \
|
|
libgcc-s1 \
|
|
sudo; \
|
|
rm -rf /var/lib/apt/lists/*; \
|
|
test -n "${FACTORIO_VERSION}"; \
|
|
mkdir -p /opt; \
|
|
curl -fL \
|
|
"https://factorio.com/get-download/${FACTORIO_VERSION}/headless/linux64" \
|
|
-o /tmp/factorio.tar.xz; \
|
|
tar -xJf /tmp/factorio.tar.xz -C /opt; \
|
|
rm -f /tmp/factorio.tar.xz; \
|
|
useradd \
|
|
--create-home \
|
|
--uid 1000 \
|
|
--shell /bin/bash \
|
|
factorio; \
|
|
mkdir -p \
|
|
"${FACTORIO_DATA}/saves" \
|
|
"${FACTORIO_DATA}/mods" \
|
|
"${FACTORIO_DATA}/config"; \
|
|
chown -R factorio:factorio \
|
|
"${FACTORIO_HOME}" \
|
|
"${FACTORIO_DATA}"
|
|
|
|
|
|
COPY entrypoint.sh /
|
|
RUN chmod +x /entrypoint.sh && chown factorio:factorio /entrypoint.sh
|
|
|
|
WORKDIR ${FACTORIO_DATA}
|
|
|
|
USER factorio
|
|
|
|
VOLUME ["/factorio"]
|
|
|
|
EXPOSE 34197/udp
|
|
EXPOSE 27015/tcp
|
|
|
|
ENTRYPOINT ["/entrypoint.sh"]
|
|
|
|
CMD ["--start-server", "/factorio/saves/world.zip", "--server-settings", "/factorio/config/server-settings.json"]
|