ipabusedb-docker-reporter: pin docker CLI image, add make push, fix stale names

Pin the docker:cli source to 29.9.3 plus its manifest list digest, tag
the image as git.eeqj.de/sneak/ipabusedb-docker-reporter with the date
and latest, add a push target, and rename the remaining
ipabusedb-docker-ssh references in the README and package doc.
This commit is contained in:
sneak committed 2026-11-06 20:32:16 -08:00
1 parent 1aa7d84401
commit bce9d01142
4 files changed
+29 -14

No files matched your search

+5 -3
View File
@@ -12,14 +12,16 @@
# -e DOCKER_CONTAINER_NAME=sshd \ # -e DOCKER_CONTAINER_NAME=sshd \
# -e IPABUSEDB_API_KEY=... \ # -e IPABUSEDB_API_KEY=... \
# -e INTERVAL=1200 \ # -e INTERVAL=1200 \
# ipabusedb-docker-reporter # git.eeqj.de/sneak/ipabusedb-docker-reporter:latest
FROM git.eeqj.de/sneak/baseimage:2026-11-05 FROM git.eeqj.de/sneak/baseimage:2026-11-05
# The reporter shells out to "docker logs", so it needs the docker CLI. # The reporter shells out to "docker logs", so it needs the docker CLI.
# The static binary from the official CLI image avoids pulling the whole # The static binary from the official CLI image avoids pulling the whole
# docker.io package (and daemon) in via apt. # docker.io package (and daemon) in via apt. Pinned to a release tag plus
COPY --from=docker:cli /usr/local/bin/docker /usr/local/bin/docker # the multi-arch manifest list digest.
COPY --from=docker:29.9.3-cli@sha256:2357639ad1ea7d0194134bf3292622fd4e562483966ed674e5d7c945b5f3b28d \
/usr/local/bin/docker /usr/local/bin/docker
WORKDIR /src WORKDIR /src
COPY go.mod go.sum ./ COPY go.mod go.sum ./
+8 -2
View File
@@ -1,12 +1,18 @@
BIN := ipabusedb-docker-reporter BIN := ipabusedb-docker-reporter
IMAGE := git.eeqj.de/sneak/$(BIN)
TAG := $(shell date -u +%Y-%m-%d)
.PHONY: build test lint fmt fmt-check check clean image .PHONY: build test lint fmt fmt-check check clean image push
build: build:
go build -o $(BIN) . go build -o $(BIN) .
image: image:
docker build -t $(BIN) . docker build -t $(BIN) -t $(IMAGE):$(TAG) -t $(IMAGE):latest .
push: image
docker push $(IMAGE):$(TAG)
docker push $(IMAGE):latest
test: test:
go test ./... go test ./...
+15 -8
View File
@@ -1,4 +1,4 @@
# ipabusedb-docker-ssh # ipabusedb-docker-reporter
Reads the logs of a dockerised sshd with `docker logs -t`, extracts Reads the logs of a dockerised sshd with `docker logs -t`, extracts
brute-force / invalid-user login attempts, and emits a CSV in the format brute-force / invalid-user login attempts, and emits a CSV in the format
@@ -52,14 +52,14 @@ Flags:
``` ```
$ make build $ make build
$ export DOCKER_CONTAINER_NAME=sshd IPABUSEDB_API_KEY=... $ export DOCKER_CONTAINER_NAME=sshd IPABUSEDB_API_KEY=...
$ ./ipabusedb-docker-ssh --since 24h -o reports.csv $ ./ipabusedb-docker-reporter --since 24h -o reports.csv
$ ./ipabusedb-docker-ssh --since 24h --submit $ ./ipabusedb-docker-reporter --since 24h --submit
``` ```
Submitting manually with curl instead of `--submit`: Submitting manually with curl instead of `--submit`:
``` ```
$ ./ipabusedb-docker-ssh --since 24h > reports.csv && curl https://api.abuseipdb.com/api/v2/bulk-report -F csv=@reports.csv -H "Key: $IPABUSEDB_API_KEY" $ ./ipabusedb-docker-reporter --since 24h > reports.csv && curl https://api.abuseipdb.com/api/v2/bulk-report -F csv=@reports.csv -H "Key: $IPABUSEDB_API_KEY"
``` ```
## Running as a container ## Running as a container
@@ -68,8 +68,9 @@ The `Dockerfile` builds on `git.eeqj.de/sneak/baseimage` and installs the
program as a runit service (`sv/ipabusedb-docker-reporter/run`) that program as a runit service (`sv/ipabusedb-docker-reporter/run`) that
sleeps `INTERVAL` seconds, then runs the reporter with sleeps `INTERVAL` seconds, then runs the reporter with
`--since ${INTERVAL}s --submit`, and repeats. The docker CLI is copied in `--since ${INTERVAL}s --submit`, and repeats. The docker CLI is copied in
from the `docker:cli` image so the program can read logs through the from the official `docker` CLI image (pinned by tag and digest in the
host's docker socket. `Dockerfile`) so the program can read logs through the host's docker
socket.
| Variable | Purpose | | Variable | Purpose |
| ----------------------- | -------------------------------------------------- | | ----------------------- | -------------------------------------------------- |
@@ -77,14 +78,20 @@ host's docker socket.
| `IPABUSEDB_API_KEY` | AbuseIPDB API key (required) | | `IPABUSEDB_API_KEY` | AbuseIPDB API key (required) |
| `INTERVAL` | seconds between runs, and the report window (1200) | | `INTERVAL` | seconds between runs, and the report window (1200) |
`make image` builds the image, tagged locally as
`ipabusedb-docker-reporter` and as
`git.eeqj.de/sneak/ipabusedb-docker-reporter` with today's date and
`latest`. `make push` builds and pushes both registry tags (log in once
with `docker login git.eeqj.de`).
``` ```
$ make image $ make push
$ docker run -d --restart unless-stopped \ $ docker run -d --restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/docker.sock:/var/run/docker.sock \
-e DOCKER_CONTAINER_NAME=sshd \ -e DOCKER_CONTAINER_NAME=sshd \
-e IPABUSEDB_API_KEY=... \ -e IPABUSEDB_API_KEY=... \
-e INTERVAL=1200 \ -e INTERVAL=1200 \
ipabusedb-docker-reporter git.eeqj.de/sneak/ipabusedb-docker-reporter:latest
``` ```
Each run's CSV and the AbuseIPDB response go to the container log. If a Each run's CSV and the AbuseIPDB response go to the container log. If a
+1 -1
View File
@@ -1,4 +1,4 @@
// ipabusedb-docker-ssh reads the logs of a dockerised sshd via // ipabusedb-docker-reporter reads the logs of a dockerised sshd via
// "docker logs -t", extracts brute-force / invalid-user attempts, and // "docker logs -t", extracts brute-force / invalid-user attempts, and
// emits a CSV suitable for the AbuseIPDB bulk-report endpoint. // emits a CSV suitable for the AbuseIPDB bulk-report endpoint.
// //