Fetch games into a volume at runtime instead of baking them into the image
927MB of the image was just t7g's two CD ISOs, which can't be meaningfully compressed (already-compressed FMV/audio). Move the smbget/unzip step out of the Dockerfile and into scripts/fetch_games.sh, run from server.sh on container start: it populates GAMES_HOME on first run and skips the fetch if games are already present. run.sh mounts a named volume so the games survive --rm restarts instead of being re-downloaded every time. Image drops from 1.6GB to ~690MB; first container start now needs network access to the vlda-01 SMB share to seed the volume. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NiNnj78HGx1KWyCCo39HSz
This commit is contained in:
+5
-11
@@ -7,24 +7,18 @@ ENV GAMES_HOME=/opt/games
|
||||
ENV SCRIPTS_HOME=/opt/scripts
|
||||
ENV PATH=${PATH}:${SCRIPTS_HOME}
|
||||
|
||||
# unzip/smbclient are only needed to fetch and extract the games below, so they're
|
||||
# purged again in this same layer instead of being left in the final image.
|
||||
# unzip/smbclient are needed at runtime now too: the games are no longer baked into the
|
||||
# image, fetch_games.sh pulls them into the ${GAMES_HOME} volume on first container start.
|
||||
RUN apt-get update && \
|
||||
apt-get -y install --no-install-recommends dosbox alsa-utils unzip smbclient && \
|
||||
mkdir -p ${GAMES_HOME} /tmp/apps && \
|
||||
cd /tmp/apps && \
|
||||
smbget -au smb://vlda-01/software/Games/dosbox/stuntcar.zip && \
|
||||
smbget -au smb://vlda-01/software/Games/dosbox/t7g.zip && \
|
||||
unzip -o -d ${GAMES_HOME} "*.zip" && \
|
||||
cd / && \
|
||||
rm -rf /tmp/apps && \
|
||||
apt-get -y purge unzip smbclient && \
|
||||
apt-get -y autoremove && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN openssl req -x509 -nodes -newkey rsa:2048 -keyout /tmp/novnc.key -out /tmp/novnc.pem -days 3650 -subj "/C=US/ST=NY/L=NY/O=NY/OU=NY/CN=NY emailAddress=email@example.com"
|
||||
RUN touch /root/.Xauthority
|
||||
|
||||
RUN mkdir -p ${GAMES_HOME}
|
||||
VOLUME ${GAMES_HOME}
|
||||
|
||||
ADD scripts ${SCRIPTS_HOME}
|
||||
WORKDIR /
|
||||
|
||||
|
||||
Reference in New Issue
Block a user