svarbox/Dockerfile

38 lines
1.9 KiB
Text
Raw Normal View History

2025-10-18 11:47:07 +03:00
FROM ubuntu:22.04
2025-10-18 11:05:20 +03:00
ENV DEBIAN_FRONTEND=noninteractive
2025-10-18 11:47:07 +03:00
# Install base packages and enable the dosemu2 PPA
2025-10-26 16:57:22 +02:00
RUN apt-get update && apt-get install -y --no-install-recommends software-properties-common gnupg openssh-server busybox-static sudo ca-certificates curl mtools unzip file xauth acl python3 python3-aiohttp && add-apt-repository -y ppa:dosemu2/ppa && apt-get install -y --no-install-recommends dosemu2 && rm -rf /var/lib/apt/lists/*
2025-10-18 11:05:20 +03:00
2025-10-18 11:47:07 +03:00
# Provide DOS wrapper, SvarDOS bootstrapper, and service supervisor
COPY scripts/dos-shell /usr/local/bin/dos-shell
2025-10-26 16:57:22 +02:00
COPY scripts/dos-httpd /usr/local/bin/dos-httpd
2025-10-18 11:47:07 +03:00
COPY scripts/prepare-svardos.sh /usr/local/bin/prepare-svardos
COPY scripts/start-services.sh /usr/local/bin/start-dos-services
2025-10-26 17:02:43 +02:00
COPY WebPlus_IBM_VGA_8x16.woff /usr/local/share/dos-httpd/WebPlus_IBM_VGA_8x16.woff
2025-10-26 16:57:22 +02:00
RUN chmod +x /usr/local/bin/dos-shell /usr/local/bin/dos-httpd /usr/local/bin/start-dos-services /usr/local/bin/prepare-svardos && echo "/usr/local/bin/dos-shell" >> /etc/shells
2025-10-18 11:05:20 +03:00
# Create sshd runtime directory
RUN mkdir -p /var/run/sshd
# Create dos user
2025-10-19 18:34:28 +03:00
RUN useradd -m -s /usr/local/bin/dos-shell dosuser && mkdir -p /home/dosuser/.ssh && chown -R dosuser:dosuser /home/dosuser && echo "dosuser:dosuser" | chpasswd
2025-10-18 11:05:20 +03:00
# Create directories for allowed DOS files, extra drives, and the C: drive mount
2025-10-19 18:34:28 +03:00
RUN mkdir -p /opt/allowed_repo /opt/dos_drives /cdrive /etc/dos_env /opt/svardos && chown -R dosuser:dosuser /opt/allowed_repo /opt/dos_drives /cdrive
2025-10-18 11:05:20 +03:00
2025-10-18 11:47:07 +03:00
# Download and stage SvarDOS base files
ARG SVARDOS_IMG_URL
ENV SVARDOS_IMG_URL=${SVARDOS_IMG_URL}
2025-10-19 18:34:28 +03:00
RUN /usr/local/bin/prepare-svardos && chown -R dosuser:dosuser /opt/svardos
2025-10-18 11:47:07 +03:00
2025-10-18 11:05:20 +03:00
# Default allowed list (can be overridden with a bind mount)
2025-10-18 11:47:07 +03:00
COPY config/dos_allowed /etc/dos_allowed
2025-10-18 11:05:20 +03:00
# Configure sshd to force command for dosuser
2025-10-18 11:47:07 +03:00
COPY config/sshd_config /etc/ssh/sshd_config
2025-10-18 11:05:20 +03:00
2025-10-26 16:57:22 +02:00
EXPOSE 22 23 8080
2025-10-18 11:05:20 +03:00
CMD ["/usr/local/bin/start-dos-services"]