FROM fedora:41 # Minimal packages for remote execution testing RUN dnf install -y \ openssh-server \ bash \ python3 \ git \ golang \ make \ procps-ng \ && dnf clean all # Configure SSHD RUN ssh-keygen -A \ && sed -i 's/#PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config \ && sed -i 's/#PubkeyAuthentication.*/PubkeyAuthentication yes/' /etc/ssh/sshd_config \ && sed -i 's/#PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config \ && sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config # Create test user matching host UID for easy volume mounting ARG UID=1000 ARG USER=lkn RUN useradd -m -u ${UID} -s /bin/bash ${USER} # Set up SSH authorized_keys RUN mkdir -p /home/${USER}/.ssh && chmod 700 /home/${USER}/.ssh COPY authorized_keys /home/${USER}/.ssh/authorized_keys RUN chmod 600 /home/${USER}/.ssh/authorized_keys \ && chown -R ${USER}:${USER} /home/${USER}/.ssh # Create a test project directory RUN mkdir -p /home/${USER}/project && chown ${USER}:${USER} /home/${USER}/project COPY hello.go /home/${USER}/project/hello.go RUN chown ${USER}:${USER} /home/${USER}/project/hello.go # Cache directory for ollie-remote binary RUN mkdir -p /home/${USER}/.cache/ollie/bin \ && chown -R ${USER}:${USER} /home/${USER}/.cache EXPOSE 22 CMD ["/usr/sbin/sshd", "-D", "-e"]