diff --git a/Dockerfile b/Dockerfile
index 629cb73..e845f8c 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,62 +1,20 @@
-FROM golang:1.20.3-alpine3.17 AS build
+FROM golang AS build
-# environment settings
-ARG GOOS="linux" \
- CGO_ENABLED="0"
+RUN mkdir /endlessh
+ADD . /endlessh
+WORKDIR /endlessh
+RUN go mod tidy
+RUN go build -o endlessh .
-# copy files to container
-COPY . "/tmp/endlessh-go/"
+FROM gcr.io/distroless/base
-# 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
+COPY --from=build /endlessh/endlessh /endlessh
EXPOSE 2222 2112
-
-USER abc
-
-ENTRYPOINT ["/usr/local/bin/endlessh-go"]
-
+USER nobody
+ENTRYPOINT ["/endlessh"]
CMD ["-logtostderr", "-v=1"]
diff --git a/README.md b/README.md
index 2ff4e76..2a00126 100644
--- a/README.md
+++ b/README.md
@@ -33,8 +33,6 @@ Then you can try to connect to the endlessh server. Your SSH client should hang
ssh -p 2222 localhost
```
-The default container user has uid/gid 2000.
-
If you want log like the [C implementation](https://github.com/skeeto/endlessh), you need to set both CLI arguments `-logtostderr` and `-v=1`, then the log will go to stderr. You can set different log destinations via CLI arguments.
Also check out [examples](./examples/README.md) for the setup of the full stack.
@@ -85,26 +83,18 @@ Usage of ./endlessh-go
comma-separated list of pattern=N settings for file-filtered logging
```
-## Using privileged ports (<1024)
-
-If you want to run the image with privileged ports (below 1025), you need to set the container user to root:
-
-```yml
-user: root
-```
-
## Metrics
Endlessh-go exports the following Prometheus metrics.
-| Metric | Type | Description |
-| ------------------------------------ | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| endlessh_client_open_count_total | count | Total number of clients that tried to connect to this host. |
-| endlessh_client_closed_count_total | count | Total number of clients that stopped connecting to this host. |
-| endlessh_sent_bytes_total | count | Total bytes sent to clients that tried to connect to this host. |
-| endlessh_trapped_time_seconds_total | count | Total seconds clients spent on endlessh. |
-| endlessh_client_open_count | count | Number of connections of clients.
Labels: