devkitPro/Dockerfile

35 lines
1.2 KiB
Docker

FROM archlinux:latest
ARG TOOLS="wii-dev"
ARG UID="1000"
ARG GID="1000"
# setup pacman
USER root
RUN pacman-key --init
RUN pacman-key --recv BC26F752D25B92CE272E0F44F7FD5492264BB9D0 --keyserver keyserver.ubuntu.com
RUN pacman-key --lsign BC26F752D25B92CE272E0F44F7FD5492264BB9D0
RUN pacman --noconfirm -U https://pkg.devkitpro.org/devkitpro-keyring.pkg.tar.zst
RUN pacman-key --populate devkitpro
COPY etc/pacman.d/devkitpro.conf /etc/pacman.d
RUN echo Include = /etc/pacman.d/devkitpro.conf >> /etc/pacman.conf
RUN pacman -Syu --noconfirm
# install tools
RUN pacman -Sy --noconfirm base-devel openssh vim $TOOLS
# setup environment
RUN groupadd -g $GID devkitpro
RUN useradd -u $UID -g $GID -lNd / devkitpro
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
RUN chown devkitpro:devkitpro /etc/ssh/ssh_host* /etc/ssh/authorized_keys
COPY etc/environment /etc/environment
USER devkitpro
WORKDIR /volume
EXPOSE 2222/tcp
CMD ["/usr/sbin/sshd", "-D"]
# use docker exec to access container OR
# use docker compose to specify entrypoint