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:
parent
016aaae99c
commit
af3ba0306c
2 changed files with 14 additions and 8 deletions
7
stacks/calibre/Dockerfile
Normal file
7
stacks/calibre/Dockerfile
Normal 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=
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue