endlessh-go/Dockerfile
Ivan Schaller ff7fdf4350
update Dockerfile and README. And add maxmind example
Signed-off-by: Ivan Schaller <ivan@schaller.sh>
2023-04-13 19:42:09 +02:00

62 lines
1.2 KiB
Docker

FROM golang:1.20.3-alpine3.17 AS build
# environment settings
ARG GOOS="linux" \
CGO_ENABLED="0"
# copy files to container
COPY . "/tmp/endlessh-go/"
# set build workdir
WORKDIR "/tmp/endlessh-go/"
# build app
RUN \
go mod tidy \
&& go build -o "endlessh-go"
FROM alpine:3.17
# labels
LABEL org.opencontainers.image.title=endlessh-go
LABEL org.opencontainers.image.description="Endlessh: an SSH tarpit"
LABEL org.opencontainers.image.vendor="Shizun Ge"
LABEL org.opencontainers.image.licenses=GPLv3
# install packages
RUN \
echo "**** installing base packages ****" \
&& apk update \
&& apk --no-cache add \
ca-certificates \
bash \
procps \
tzdata
# prepare container
RUN \
echo "**** create default user ****" \
&& addgroup -S -g 2000 abc \
&& adduser -S -D -H -s /bin/bash -u 2000 -G abc abc
# cleanup installation
RUN \
echo "**** cleanup ****" \
&& rm -rf \
/tmp/* \
/var/cache/apk/* \
/var/tmp/*
# copy files to container
COPY --from=build "/tmp/endlessh-go/endlessh-go" "/usr/local/bin/"
# ssh / prometheus port
EXPOSE 2222 2112
USER abc
ENTRYPOINT ["/usr/local/bin/endlessh-go"]
CMD ["-logtostderr", "-v=1"]