windows_in_docker/Dockerfile

56 lines
1.3 KiB
Docker

# syntax=docker/dockerfile:1
ARG VERSION_ARG="latest"
FROM scratch AS build-amd64
COPY --from=qemux/qemu:7.12 / /
ARG DEBCONF_NOWARNINGS="yes"
ARG DEBIAN_FRONTEND="noninteractive"
ARG DEBCONF_NONINTERACTIVE_SEEN="true"
RUN set -eu && \
apt-get update && \
apt-get --no-install-recommends -y install \
samba \
wimtools \
dos2unix \
cabextract \
libxml2-utils \
libarchive-tools \
netcat-openbsd && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
COPY --chmod=755 ./src /run/
COPY --chmod=755 ./assets /run/assets
ADD --chmod=755 https://raw.githubusercontent.com/christgau/wsdd/refs/tags/v0.9/src/wsdd.py /usr/sbin/wsdd
ADD --chmod=664 https://github.com/qemus/virtiso-whql/releases/download/v1.9.47-0/virtio-win-1.9.47.tar.xz /var/drivers.txz
FROM dockurr/windows-arm:${VERSION_ARG} AS build-arm64
FROM build-${TARGETARCH}
ARG VERSION_ARG="0.00"
RUN echo "$VERSION_ARG" > /run/version
VOLUME /storage
EXPOSE 3389 8006
ENV VERSION="11"
ENV RAM_SIZE="4G"
ENV CPU_CORES="2"
ENV DISK_SIZE="64G"
# Create non-root user for security
RUN useradd -r -u 1000 -g 0 -s /sbin/nologin appuser
# Switch to non-root user
USER appuser
# Run as non-root user for security
RUN net user winuser /add || echo "User already exists"
USER winuser
ENTRYPOINT ["/usr/bin/tini", "-s", "/run/entry.sh"]