Files
mini-windrose-manager/dockerfile
T

78 lines
1.8 KiB
Docker

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
ENV WINEPREFIX=/data/wineprefix
ENV DXVK_VERSION=2.3
ENV STEAMCMD_DIR=/opt/steamcmd
# Enable 32-bit architecture and install Wine + Vulkan + dependencies
RUN dpkg --add-architecture i386 && \
apt update && \
apt install -y --no-install-recommends \
ca-certificates \
wget \
unzip \
tar \
xvfb \
xauth \
x11-apps \
libx11-6 \
libx11-dev \
libxext6 \
libxext-dev \
libxrender1 \
libxrender-dev \
libxrandr2 \
libxrandr-dev \
libfreetype6 \
libfreetype6-dev \
libfontconfig1 \
libfontconfig1-dev \
libvulkan1 \
libvulkan1:i386 \
mesa-vulkan-drivers \
mesa-vulkan-drivers:i386 \
wine64 \
wine32 \
winbind \
python3 \
git \
curl \
cabextract \
fonts-wine \
&& rm -rf /var/lib/apt/lists/*
# Initialize Wine prefix (prevents first-run crashes)
RUN mkdir -p /data/wineprefix && \
wine64 wineboot --init || true
# Install Node 18 LTS
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \
apt install -y nodejs
# SteamCMD
RUN mkdir -p ${STEAMCMD_DIR} && \
cd ${STEAMCMD_DIR} && \
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz && \
tar -xvzf steamcmd_linux.tar.gz
# DXVK
RUN mkdir -p /data/dxvk && \
cd /data/dxvk && \
wget https://github.com/doitsujin/dxvk/releases/download/v${DXVK_VERSION}/dxvk-${DXVK_VERSION}.tar.gz && \
tar -xvzf dxvk-${DXVK_VERSION}.tar.gz
# Manager service
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
# Entrypoint
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
VOLUME ["/data"]
ENTRYPOINT ["/entrypoint.sh"]