To be able to still execute the entrypoint (and any logic which is/will be there), but completely override the sshpiperd arguments only. So, customizing the plugins usage should be easy. Example: ``` $ docker run --rm -it localhost/sshpiperd:test INFO[0000] starting sshpiperd version: devel, fc6c3e1e9, 2023-08-30T14:31:06Z, go1.21.0 INFO[0000] generating host key /etc/ssh/ssh_host_ed25519_key INFO[0000] found host keys [/etc/ssh/ssh_host_ed25519_key] INFO[0000] loading host key /etc/ssh/ssh_host_ed25519_key INFO[0000] starting child process plugin: [/sshpiperd/plugins/workingdir] INFO[0000] sshpiperd is listening on: [::]:2222 ^C ``` ``` $ docker run --rm -it localhost/sshpiperd:test /sshpiperd/plugins/workingdir -- /sshpiperd/plugins/failtoban INFO[0000] starting sshpiperd version: devel, fc6c3e1e9, 2023-08-30T14:31:06Z, go1.21.0 INFO[0000] generating host key /etc/ssh/ssh_host_ed25519_key INFO[0000] found host keys [/etc/ssh/ssh_host_ed25519_key] INFO[0000] loading host key /etc/ssh/ssh_host_ed25519_key INFO[0000] starting child process plugin: [/sshpiperd/plugins/workingdir] INFO[0000] starting child process plugin: [/sshpiperd/plugins/failtoban] INFO[0000] sshpiperd is listening on: [::]:2222 ^C ```
33 lines
1.1 KiB
Docker
33 lines
1.1 KiB
Docker
FROM docker.io/golang:1.21-bullseye as builder
|
|
|
|
ARG VER=devel
|
|
ARG BUILDTAGS=""
|
|
ARG EXTERNAL="0"
|
|
|
|
ENV CGO_ENABLED=0
|
|
|
|
RUN mkdir -p /sshpiperd/plugins
|
|
WORKDIR /src
|
|
RUN --mount=target=/src,type=bind,source=. --mount=type=cache,target=/root/.cache/go-build if [ "$EXTERNAL" = "1" ]; then cp sshpiperd /sshpiperd; else go build -o /sshpiperd -ldflags "-X main.mainver=$VER" ./cmd/... ; fi
|
|
RUN --mount=target=/src,type=bind,source=. --mount=type=cache,target=/root/.cache/go-build if [ "$EXTERNAL" = "1" ]; then cp -r plugins /sshpiperd ; else go build -o /sshpiperd/plugins -tags "$BUILDTAGS" ./plugin/...; fi
|
|
ADD entrypoint.sh /sshpiperd
|
|
|
|
FROM docker.io/busybox
|
|
LABEL maintainer="Boshi Lian<farmer1992@gmail.com>"
|
|
|
|
RUN mkdir /etc/ssh/
|
|
|
|
# Add user nobody with id 1
|
|
ARG USERID=1000
|
|
ARG GROUPID=1000
|
|
RUN addgroup -g $GROUPID -S sshpiperd && adduser -u $USERID -S sshpiperd -G sshpiperd
|
|
|
|
# Add execution rwx to user 1
|
|
RUN chown -R $USERID:$GROUPID /etc/ssh/
|
|
|
|
USER $USERID:$GROUPID
|
|
|
|
COPY --from=builder --chown=$USERID /sshpiperd/ /sshpiperd
|
|
EXPOSE 2222
|
|
|
|
ENTRYPOINT ["/sshpiperd/entrypoint.sh"]
|