Files
scriptos 10bddc984b
Upstream Release Watcher & Multi-Arch Build / Check & Build Docker Image (push) Successful in 54s
Rename package to bastillion-docker and use only latest & vX.Y.Z tags
2026-10-23 20:28:41 +02:00

49 lines
1.7 KiB
Docker

FROM eclipse-temurin:21-jre-alpine
# Metadaten
LABEL org.opencontainers.image.title="Bastillion"
LABEL org.opencontainers.image.description="Modern web-based SSH console and key management tool"
LABEL org.opencontainers.image.source="https://github.com/Loophole-LLC/Bastillion"
LABEL org.opencontainers.image.vendor="Loophole LLC / Community Docker Image"
# Build-Argument für Upstream-Version (Standard: 6.0.3)
ARG BASTILLION_VERSION=6.0.3
# Standard-Laufzeitumgebung
ENV CONFIG_DIR=/data \
PORT=8080 \
TLS_ENABLED=false \
JAVA_TOOL_OPTIONS=-DGEN_DB_PASS=true \
CLIENT_IP_HEADER=X-Forwarded-For
# Minimale Tools für Healthcheck & Netzwerkanfragen
RUN apk add --no-cache curl wget ca-certificates bash
# Unprivilegierten Benutzer anlegen (Sicherheit: Non-Root)
RUN addgroup -g 1000 bastillion && \
adduser -D -u 1000 -G bastillion -s /bin/sh bastillion && \
mkdir -p /opt/bastillion /data && \
chown -R bastillion:bastillion /opt/bastillion /data
WORKDIR /opt/bastillion
# Executable Standalone JAR direkt aus offiziellem GitHub Release beziehen
ADD --chown=bastillion:bastillion \
https://github.com/Loophole-LLC/Bastillion/releases/download/v${BASTILLION_VERSION}/bastillion-${BASTILLION_VERSION}.jar \
/opt/bastillion/bastillion.jar
# Privilegien abgeben
USER bastillion
# Persistenter Datenspeicher (H2-DB, Keystores, SSH-Keypair, Konfiguration)
VOLUME ["/data"]
# HTTP-Port (8080 Standard bei TLS_ENABLED=false)
EXPOSE 8080 8443
# Healthcheck
HEALTHCHECK --interval=30s --timeout=5s --start-period=30s --retries=3 \
CMD wget --no-verbose --tries=1 --spider http://127.0.0.1:${PORT}/ || exit 1
ENTRYPOINT ["java", "-jar", "/opt/bastillion/bastillion.jar"]