build: add project dockerfile (#2)
Add a project Dockerfile to allow deploying the application in a docker container. Add a `run.sh` script to start the application in the container. Add Makefile commands to build the docker image based on the Dockerfile. Fix possible nil reference error in the `db` package.
This commit is contained in:
parent
e94143e81c
commit
9dc8dd862f
10
Dockerfile
Normal file
10
Dockerfile
Normal file
@ -0,0 +1,10 @@
|
||||
# Using golang:latest instead of alpine because of issues with sqlite3
|
||||
FROM golang:latest
|
||||
|
||||
WORKDIR /app
|
||||
COPY dist/fail2ban-prometheus-exporter_linux_amd64/fail2ban-prometheus-exporter /app
|
||||
COPY docker/run.sh /app
|
||||
|
||||
RUN chmod +x /app/*
|
||||
|
||||
ENTRYPOINT /app/run.sh
|
6
Makefile
6
Makefile
@ -22,3 +22,9 @@ build/snapshot:
|
||||
|
||||
build/release:
|
||||
./tools/goreleaser_linux_amd64 --rm-dist --skip-publish
|
||||
|
||||
build/docker:
|
||||
docker build -t registry.gitlab.com/hectorjsmith/fail2ban-prometheus-exporter:latest .
|
||||
|
||||
build/docker-tag:
|
||||
docker build -t registry.gitlab.com/hectorjsmith/fail2ban-prometheus-exporter:$(shell git describe --tags) .
|
||||
|
8
db/db.go
8
db/db.go
@ -70,8 +70,10 @@ func (db *Fail2BanDB) RunJailNameToCountQuery(query string) (map[string]int, err
|
||||
}
|
||||
|
||||
func (db *Fail2BanDB) mustCloseStatement(stmt *sql.Stmt) {
|
||||
err := stmt.Close()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
if stmt != nil {
|
||||
err := stmt.Close()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
9
docker/run.sh
Normal file
9
docker/run.sh
Normal file
@ -0,0 +1,9 @@
|
||||
#/bin/sh
|
||||
|
||||
# Print version to logs for debugging purposes
|
||||
/app/fail2ban-prometheus-exporter -version
|
||||
|
||||
# Start the exporter (use exec to support graceful shutdown)
|
||||
# Inspired by: https://akomljen.com/stopping-docker-containers-gracefully/
|
||||
exec /app/fail2ban-prometheus-exporter \
|
||||
-db /app/fail2ban.sqlite3
|
Loading…
Reference in New Issue
Block a user