🐛 Bug Report: Docker image for version v1.2.0 fails to start #178

Closed
opened 2025-10-07 00:04:47 +03:00 by OVERLORD · 9 comments
Owner

Originally created by @beauwest on GitHub.

Reproduction steps

When I updated the tag on my image, I get an error. Possibly the same issue as #208 .

Expected behavior

It starts

Actual Behavior

exec /app/docker/entrypoint.sh: exec format error

Version and Environment

ghcr.io/pocket-id/pocket-id:v1.2.0

Log Output

No response

Originally created by @beauwest on GitHub. ### Reproduction steps When I updated the tag on my image, I get an error. Possibly the same issue as #208 . ### Expected behavior It starts ### Actual Behavior > exec /app/docker/entrypoint.sh: exec format error ### Version and Environment ghcr.io/pocket-id/pocket-id:v1.2.0 ### Log Output _No response_
OVERLORD added the bug label 2025-10-07 00:04:47 +03:00
Author
Owner

@beauwest commented on GitHub:

Previous version was v1.1.0.
OS is Talos Linux so running the container in a pod on Kubernetes.
CPU architecture is x86-64.

@beauwest commented on GitHub: Previous version was v1.1.0. OS is Talos Linux so running the container in a pod on Kubernetes. CPU architecture is x86-64.
Author
Owner

@beauwest commented on GitHub:

Since it's in a Kubernetes environment, there isn't a docker CLI. Here's the output of kubectl describe pod …

Name:             pocket-id-0
Namespace:        pocket-id
Priority:         0
Service Account:  default
Node:             talos-worker3/192.168.1.26
Start Time:       Thu, 05 Jun 2025 15:54:21 -0500
Labels:           app.kubernetes.io/name=pocket-id
                  apps.kubernetes.io/pod-index=0
                  controller-revision-hash=pocket-id-5b947cd548
                  statefulset.kubernetes.io/pod-name=pocket-id-0
Annotations:      <none>
Status:           Running
SeccompProfile:   RuntimeDefault
IP:               10.244.3.227
IPs:
  IP:           10.244.3.227
Controlled By:  StatefulSet/pocket-id
Containers:
  pocket-id:
    Container ID:   containerd://cb198380fe68b5636f358667b92639f0bd780e66f1f620157b9be1bb3ccfd393
    Image:          ghcr.io/pocket-id/pocket-id:v1.2.0
    Image ID:       ghcr.io/pocket-id/pocket-id@sha256:8bd570d232efc8dd725282fda32b067aa7f7a2967557ab63c95639c20607c1a0
    Port:           1411/TCP
    Host Port:      0/TCP
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    255
      Started:      Thu, 05 Jun 2025 15:54:41 -0500
      Finished:     Thu, 05 Jun 2025 15:54:41 -0500
    Ready:          False
    Restart Count:  2
    Requests:
      memory:  10Mi
    Liveness:  http-get http://:container-port/healthz delay=60s timeout=1s period=30s #success=1 #failure=10
    Environment:
      APP_URL:             https://pocket-id.redacted.com
      TRUST_PROXY:         true
      ANALYTICS_DISABLED:  true
      SESSION_DURATION:    43200
    Mounts:
      /app/data from pocket-id-data (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-zbvnt (ro)
Conditions:
  Type                        Status
  PodReadyToStartContainers   True 
  Initialized                 True 
  Ready                       False 
  ContainersReady             False 
  PodScheduled                True 
Volumes:
  pocket-id-data:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  pocket-id-data-pocket-id-0
    ReadOnly:   false
  kube-api-access-zbvnt:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    Optional:                false
    DownwardAPI:             true
QoS Class:                   Burstable
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age                From               Message
  ----     ------     ----               ----               -------
  Normal   Scheduled  37s                default-scheduler  Successfully assigned pocket-id/pocket-id-0 to talos-worker3
  Normal   Pulled     33s                kubelet            Successfully pulled image "ghcr.io/pocket-id/pocket-id:v1.2.0" in 459ms (459ms including waiting). Image size: 35507973 bytes.
  Normal   Pulled     31s                kubelet            Successfully pulled image "ghcr.io/pocket-id/pocket-id:v1.2.0" in 769ms (769ms including waiting). Image size: 35507973 bytes.
  Normal   Pulling    18s (x3 over 33s)  kubelet            Pulling image "ghcr.io/pocket-id/pocket-id:v1.2.0"
  Normal   Created    18s (x3 over 33s)  kubelet            Created container: pocket-id
  Normal   Pulled     18s                kubelet            Successfully pulled image "ghcr.io/pocket-id/pocket-id:v1.2.0" in 481ms (481ms including waiting). Image size: 35507973 bytes.
  Normal   Started    17s (x3 over 33s)  kubelet            Started container pocket-id
  Warning  BackOff    3s (x5 over 30s)   kubelet            Back-off restarting failed container pocket-id in pod pocket-id-0_pocket-id(fd4c7cc2-9bda-4304-b833-a1f292f284b4)

And only output in the pod log

exec /app/docker/entrypoint.sh: exec format error
@beauwest commented on GitHub: Since it's in a Kubernetes environment, there isn't a docker CLI. Here's the output of `kubectl describe pod …` ``` Name: pocket-id-0 Namespace: pocket-id Priority: 0 Service Account: default Node: talos-worker3/192.168.1.26 Start Time: Thu, 05 Jun 2025 15:54:21 -0500 Labels: app.kubernetes.io/name=pocket-id apps.kubernetes.io/pod-index=0 controller-revision-hash=pocket-id-5b947cd548 statefulset.kubernetes.io/pod-name=pocket-id-0 Annotations: <none> Status: Running SeccompProfile: RuntimeDefault IP: 10.244.3.227 IPs: IP: 10.244.3.227 Controlled By: StatefulSet/pocket-id Containers: pocket-id: Container ID: containerd://cb198380fe68b5636f358667b92639f0bd780e66f1f620157b9be1bb3ccfd393 Image: ghcr.io/pocket-id/pocket-id:v1.2.0 Image ID: ghcr.io/pocket-id/pocket-id@sha256:8bd570d232efc8dd725282fda32b067aa7f7a2967557ab63c95639c20607c1a0 Port: 1411/TCP Host Port: 0/TCP State: Waiting Reason: CrashLoopBackOff Last State: Terminated Reason: Error Exit Code: 255 Started: Thu, 05 Jun 2025 15:54:41 -0500 Finished: Thu, 05 Jun 2025 15:54:41 -0500 Ready: False Restart Count: 2 Requests: memory: 10Mi Liveness: http-get http://:container-port/healthz delay=60s timeout=1s period=30s #success=1 #failure=10 Environment: APP_URL: https://pocket-id.redacted.com TRUST_PROXY: true ANALYTICS_DISABLED: true SESSION_DURATION: 43200 Mounts: /app/data from pocket-id-data (rw) /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-zbvnt (ro) Conditions: Type Status PodReadyToStartContainers True Initialized True Ready False ContainersReady False PodScheduled True Volumes: pocket-id-data: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: pocket-id-data-pocket-id-0 ReadOnly: false kube-api-access-zbvnt: Type: Projected (a volume that contains injected data from multiple sources) TokenExpirationSeconds: 3607 ConfigMapName: kube-root-ca.crt Optional: false DownwardAPI: true QoS Class: Burstable Node-Selectors: <none> Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 37s default-scheduler Successfully assigned pocket-id/pocket-id-0 to talos-worker3 Normal Pulled 33s kubelet Successfully pulled image "ghcr.io/pocket-id/pocket-id:v1.2.0" in 459ms (459ms including waiting). Image size: 35507973 bytes. Normal Pulled 31s kubelet Successfully pulled image "ghcr.io/pocket-id/pocket-id:v1.2.0" in 769ms (769ms including waiting). Image size: 35507973 bytes. Normal Pulling 18s (x3 over 33s) kubelet Pulling image "ghcr.io/pocket-id/pocket-id:v1.2.0" Normal Created 18s (x3 over 33s) kubelet Created container: pocket-id Normal Pulled 18s kubelet Successfully pulled image "ghcr.io/pocket-id/pocket-id:v1.2.0" in 481ms (481ms including waiting). Image size: 35507973 bytes. Normal Started 17s (x3 over 33s) kubelet Started container pocket-id Warning BackOff 3s (x5 over 30s) kubelet Back-off restarting failed container pocket-id in pod pocket-id-0_pocket-id(fd4c7cc2-9bda-4304-b833-a1f292f284b4) ``` And only output in the pod log ``` exec /app/docker/entrypoint.sh: exec format error ```
Author
Owner

@stonith404 commented on GitHub:

Thanks but it seems like this doesn't output the ARCH of the image. We are not officially supporting the Kubernetes installation so I can't really help you here if the issue is related to Kubernetes.

Are you able to run the same image on the same machine without Kubernetes?

@stonith404 commented on GitHub: Thanks but it seems like this doesn't output the ARCH of the image. We are not officially supporting the Kubernetes installation so I can't really help you here if the issue is related to Kubernetes. Are you able to run the same image on the same machine without Kubernetes?
Author
Owner

@stonith404 commented on GitHub:

Thanks, can you share the output of docker image inspect ghcr.io/pocket-id/pocket-id:v1.2.0. You explicitly use the image tag v1.2.0, right?

@stonith404 commented on GitHub: Thanks, can you share the output of `docker image inspect ghcr.io/pocket-id/pocket-id:v1.2.0`. You explicitly use the image tag `v1.2.0`, right?
Author
Owner

@stonith404 commented on GitHub:

Which was your previous version and which OS and CPU architecture are you using?

@stonith404 commented on GitHub: Which was your previous version and which OS and CPU architecture are you using?
Author
Owner

@beauwest commented on GitHub:

While I can't rule it out, my gut feeling would be that it's not an issue specifically related to Kubernetes, especially since the v1.1.0 works fine. Unless something significant changed in the entrypoint.sh file?

@beauwest commented on GitHub: While I can't rule it out, my gut feeling would be that it's not an issue specifically related to Kubernetes, especially since the v1.1.0 works fine. Unless something significant changed in the entrypoint.sh file?
Author
Owner

@beauwest commented on GitHub:

For future travelers. This ended up being some kind of issue with a particular node in the Kubernetes cluster. Other nodes could run the 1.2.0 image correctly, and deleting and recreating the node itself solved the issue. The clue was when other containers started failing as well.

Not a pocket-id issue!

@beauwest commented on GitHub: For future travelers. This ended up being some kind of issue with a particular node in the Kubernetes cluster. Other nodes could run the 1.2.0 image correctly, and deleting and recreating the node itself solved the issue. The clue was when other containers started failing as well. Not a pocket-id issue!
Author
Owner

@beauwest commented on GitHub:

Unfortunately that's not testable. Talos is an immutable OS specifically for Kubernetes. I did test a simple docker configuration on a different machine, with an arm64 architecture, and arm64 v1.2.0 does work at least. I'm unable to test amd64.

@beauwest commented on GitHub: Unfortunately that's not testable. Talos is an immutable OS specifically for Kubernetes. I did test a simple docker configuration on a different machine, with an arm64 architecture, and arm64 v1.2.0 does work at least. I'm unable to test amd64.
Author
Owner

@stonith404 commented on GitHub:

I also thought that's probably not related to Kubernetes but I was able to run v1.2.0 on a amd64 machine with Docker. Strange is also that we didn't change anything related to Docker in the latest release, you can see all changed files here.

I'm closing this issue as this only seems to occur with Kubernetes but feel free to reopen the issue if you can reproduce it with an official installation method.

@stonith404 commented on GitHub: I also thought that's probably not related to Kubernetes but I was able to run `v1.2.0` on a amd64 machine with Docker. Strange is also that we didn't change anything related to Docker in the latest release, you can see all changed files [here](https://github.com/pocket-id/pocket-id/compare/v1.1.0...v1.2.0). I'm closing this issue as this only seems to occur with Kubernetes but feel free to reopen the issue if you can reproduce it with an official installation method.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/pocket-id#178