29 lines
881 B
Text
29 lines
881 B
Text
|
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
|