FROM fedora:latest AS devcontainer ARG UID="1000" ARG GID="1000" ARG BASENAME="workdir" # setup packages USER root RUN dnf update -y RUN dnf install -y dnf5-devel libdnf5-devel libdnf5-cli-devel openssh-server vim cmake gcc g++ git just # setup environment RUN ssh-keygen -A RUN sed -i "s|#Port 22|Port 2222|g" /etc/ssh/sshd_config RUN sed -i "s|AuthorizedKeysFile.*|AuthorizedKeysFile /etc/ssh/authorized_keys|g" /etc/ssh/sshd_config RUN --mount=type=secret,id=key,target=/root/id.pub \ cp /root/id.pub /etc/ssh/authorized_keys # setup user and permissions RUN groupadd -g $GID dev RUN useradd -u $UID -g $GID -lN dev RUN chown dev:dev /etc/ssh/ssh_host* /etc/ssh/authorized_keys /etc/ssh/sshd_config USER dev WORKDIR /volume/${BASENAME} EXPOSE 2222/tcp CMD ["/usr/sbin/sshd", "-D"] # use docker exec or SSH to access container OR # use docker compose to specify entrypoint