# syntax=docker/dockerfile:1
FROM ich777/novnc-baseimage

ENV DISPLAY_NUM=99
ENV GAMES_HOME=/opt/games
ENV SCRIPTS_HOME=/opt/scripts
ENV PATH=${PATH}:${SCRIPTS_HOME}

# unzip/smbclient/python3 are needed at runtime: the games are no longer baked into the
# image, setup_server.py serves an HTML install UI (backed by smbget+unzip) that the user
# drives on ${SETUP_PORT} instead of anything being auto-downloaded at container start.
RUN apt-get update && \
    apt-get -y install --no-install-recommends dosbox scummvm alsa-utils unzip smbclient python3 && \
    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 /

EXPOSE 60${DISPLAY_NUM}
EXPOSE 70${DISPLAY_NUM}
EXPOSE 8090-8099
EXPOSE 5900

ENTRYPOINT ["/opt/scripts/server_start.sh", "/opt/scripts/server.sh"]

# see also
# https://github.com/ich777/docker-krusader
