fix(frontend): agregar runAsUser explicito, runAsNonRoot solo no alcanza
Detectado en vivo: el pod nuevo fallaba con CreateContainerConfigError -- 'container has runAsNonRoot and image has non-numeric user (nextjs), cannot verify user is non-root'. El Dockerfile define el usuario por nombre (useradd ... nextjs), Kubernetes no puede confirmar el UID real sin arrancar el contenedor. Se agrega runAsUser: 1001 explicito (coincide con el --uid 1001 del useradd real del Dockerfile). Los 2 pods viejos siguieron sirviendo trafico sin interrupcion mientras tanto. Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_011FqYP3Wf1W63Qmh7qgXAAT
This commit is contained in:
1 parent
d0ecb5ef16
commit
4da96a8314
1 file changed
+13
-2
@@ -19,6 +19,10 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
app: frontend
|
app: frontend
|
||||||
spec:
|
spec:
|
||||||
|
# runAsUser explícito -- ver comentario largo más abajo, junto al
|
||||||
|
# container, sobre por qué runAsNonRoot solo no alcanza acá.
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 1001
|
||||||
containers:
|
containers:
|
||||||
- name: app
|
- name: app
|
||||||
image: gitea.cruzcloud.net/devops/ecommerce-frontend:v1.0.104
|
image: gitea.cruzcloud.net/devops/ecommerce-frontend:v1.0.104
|
||||||
@@ -45,8 +49,15 @@ spec:
|
|||||||
path: /api/health
|
path: /api/health
|
||||||
port: http
|
port: http
|
||||||
# El Dockerfile de frontend ya corre como usuario "nextjs" no-root
|
# El Dockerfile de frontend ya corre como usuario "nextjs" no-root
|
||||||
# (a diferencia de docs-portal) -- runAsNonRoot: true del base
|
# (a diferencia de docs-portal) -- pero runAsNonRoot: true del
|
||||||
# se queda tal cual, sin override.
|
# base SOLO no alcanza: probado en vivo, falló con "container
|
||||||
|
# has runAsNonRoot and image has non-numeric user (nextjs),
|
||||||
|
# cannot verify user is non-root". El Dockerfile define el
|
||||||
|
# usuario por NOMBRE (useradd ... nextjs), y sin un runAsUser
|
||||||
|
# numérico Kubernetes no puede confirmar que no sea root sin
|
||||||
|
# arrancar el contenedor -- y por eso rechaza arrancarlo. El
|
||||||
|
# UID real es 1001 (useradd --uid 1001 ... nextjs en el
|
||||||
|
# Dockerfile).
|
||||||
#
|
#
|
||||||
# Sí hace falta NET_BIND_SERVICE: el puerto real es 80
|
# Sí hace falta NET_BIND_SERVICE: el puerto real es 80
|
||||||
# (privilegiado, <1024). El Dockerfile ya hace setcap sobre el
|
# (privilegiado, <1024). El Dockerfile ya hace setcap sobre el
|
||||||
|
|||||||
Reference in new issue
Block a user