# HoneyOS — ein Binary, die Oberfläche steckt per embed mit drin. FROM golang:1.23-alpine AS build WORKDIR /src COPY go.mod go.sum ./ RUN go mod download COPY *.go ./ COPY internal/ ./internal/ COPY web/ ./web/ RUN CGO_ENABLED=0 go build -buildvcs=false -ldflags="-s -w" -o /honeyos . FROM alpine:3.20 LABEL org.opencontainers.image.title="HoneyOS" \ org.opencontainers.image.description="Retro-Schreibtisch und Umschalter für die eigenen Apps" \ org.opencontainers.image.source="https://gitea.honeyy.duckdns.org/Docker/HoneyOS" # ca-certificates: ohne die scheitert die Anfrage an den OIDC-Anbieter über https. RUN apk add --no-cache ca-certificates wget && \ adduser -D -u 1000 honeyos && \ mkdir -p /data && chown honeyos:honeyos /data COPY --from=build /honeyos /usr/local/bin/honeyos USER honeyos VOLUME /data EXPOSE 8080 ENV HONEYOS_ADDR=:8080 HONEYOS_DATA_DIR=/data HEALTHCHECK --interval=30s --timeout=3s --start-period=5s \ CMD wget -qO- http://127.0.0.1:8080/healthz || exit 1 ENTRYPOINT ["/usr/local/bin/honeyos"]