fix calibre slow startup: bake calibre binaries into image, skip chown on NFS

Custom Docker image pre-installs the universal-calibre mod at build time,
eliminating ~10 min apt-get on every container start. Added NO_CHOWN=true
to skip recursive chown that hangs on NFS mounts. Tightened startup probe
since pod now starts in ~2 min instead of 15-20 min.
This commit is contained in:
Viktor Barzin 2026-03-15 02:03:19 +00:00 committed by Viktor Barzin
parent 016aaae99c
commit af3ba0306c
2 changed files with 14 additions and 8 deletions

View file

@ -0,0 +1,7 @@
FROM crocodilestick/calibre-web-automated:latest
# Pre-install the universal-calibre mod at build time (avoids apt-get on every container start)
ENV DOCKER_MODS=linuxserver/mods:universal-calibre
RUN /docker-mods || true
# Clear the env so it doesn't re-run at startup
ENV DOCKER_MODS=

View file

@ -138,7 +138,7 @@ module "nfs_stacks_config" {
# } # }
resource "kubernetes_deployment" "calibre-web-automated" { resource "kubernetes_deployment" "calibre-web-automated" {
wait_for_rollout = false # DOCKER_MODS install takes 10+ min on every container start wait_for_rollout = true
metadata { metadata {
name = "calibre-web-automated" name = "calibre-web-automated"
namespace = kubernetes_namespace.calibre.metadata[0].name namespace = kubernetes_namespace.calibre.metadata[0].name
@ -173,7 +173,7 @@ resource "kubernetes_deployment" "calibre-web-automated" {
} }
spec { spec {
container { container {
image = "crocodilestick/calibre-web-automated:latest" image = "viktorbarzin/calibre-web-automated:latest"
name = "calibre-web-automated" name = "calibre-web-automated"
env { env {
name = "PUID" name = "PUID"
@ -184,8 +184,8 @@ resource "kubernetes_deployment" "calibre-web-automated" {
value = 1000 value = 1000
} }
env { env {
name = "DOCKER_MODS" name = "NO_CHOWN"
value = "linuxserver/mods:universal-calibre" value = "true"
} }
env { env {
# If your library is on a network share (e.g., NFS/SMB), disable WAL to reduce locking issues # If your library is on a network share (e.g., NFS/SMB), disable WAL to reduce locking issues
@ -200,16 +200,15 @@ resource "kubernetes_deployment" "calibre-web-automated" {
port { port {
container_port = 8083 container_port = 8083
} }
# Startup probe: allow up to 10 min for calibre binary install on first boot
startup_probe { startup_probe {
http_get { http_get {
path = "/" path = "/"
port = 8083 port = 8083
} }
initial_delay_seconds = 120 initial_delay_seconds = 10
timeout_seconds = 5 timeout_seconds = 5
period_seconds = 15 period_seconds = 5
failure_threshold = 56 failure_threshold = 24
} }
liveness_probe { liveness_probe {
http_get { http_get {