NginxProxyManager / nginx-proxy-manager

Docker container for managing Nginx proxy hosts with a simple, powerful interface
https://nginxproxymanager.com
MIT License
22.59k stars 2.62k forks source link

standard_init_linux.go:211: exec user process caused "exec format error" #298

Closed talondnb closed 4 years ago

talondnb commented 4 years ago

image: jc21/nginx-proxy-manager:latest

Describe the bug npm app doesn't boot, with the logs showing: standard_init_linux.go:211: exec user process caused "exec format error"

To Reproduce docker-compose.yaml (previously worked fine until recent update)

version: "3.5"

volumes:
  data:
    driver: local
    driver_opts:
      type: nfs4
      o: addr=10.10.10.100,rw,noatime,rsize=8192,wsize=8192,tcp,timeo=14
      device: ":/volume1/Config/npm/data"
  letsencrypt:
    driver: local
    driver_opts:
      type: nfs4
      o: addr=10.10.10.100,rw,noatime,rsize=8192,wsize=8192,tcp,timeo=14
      device: ":/volume1/Config/npm/letsencrypt"

services:
  app:
    image: jc21/nginx-proxy-manager:latest
    restart: always
    ports:
      - "80:80"
      - "443:443"
      - "81:81"
    volumes:
      # Make sure this config.json file exists
      - /mnt/config/npm/config.json:/app/config/production.json
      - data:/data
      - letsencrypt:/etc/letsencrypt
    depends_on:
      - db
  db:
    image: yobasystems/alpine-mariadb:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: "npm"
      MYSQL_DATABASE: "npm"
      MYSQL_USER: "npm"
      MYSQL_PASSWORD: "password"
    volumes:
      # Does not work on an NFS volume
      - /home/xxx/npm/data/mysql:/var/lib/mysql

Expected behavior npm app boots normally

Operating System Hypriot docker image on Pi4

talondnb commented 4 years ago

This seems to be because of the latest multi arch build, perhaps not using the right one for my Pi 4.

jc21 commented 4 years ago

I don’t have a pi 4 yet, but I’ll take a look at it tomorrow

talondnb commented 4 years ago

Thanks. Pi 4 will be an arm7 build. Can I manually specify somehow?

talondnb commented 4 years ago

I've tried latest-arm7l as per tags here:

https://hub.docker.com/r/jc21/nginx-proxy-manager

This doesn't seem to work, no valid dockerfile.

jc21 commented 4 years ago

Could you run ‘uname -a’ in you terminal and paste the output. Should tell me the arch and whether it’s 32 or 64 bit

talondnb commented 4 years ago

Linux gliesedocker 4.19.66-v7l+ #1253 SMP Thu Aug 15 12:02:08 BST 2019 armv7l GNU/Linux

talondnb commented 4 years ago

I suspect you've fixed something as i've just retried the :latest-armv7l tag and it's now working. :)

jc21 commented 4 years ago

I thought pi4 was armv8/arm64. A quick look at Hypriot doesn’t seem to offer different versions for Pi 2/3/4

jc21 commented 4 years ago

By the way, that latest-armv7l tag is not version NPM 2.1.0, its the previous docker manifest version

talondnb commented 4 years ago

Ahh I see. I’ll await updates before trying the latest tag again. 👍🏼

jc21 commented 4 years ago

Looks like the docker buildx isn't building for the correct architectures. Still looking in to it.

jc21 commented 4 years ago

Nope buildx was working as expected. The real problem is s6-overlay, I've mistakenly been using amd64 binaries for it across all architectures. Rookie move.

talondnb commented 4 years ago

Ah appreciate it, thanks for looking into this promptly.

jc21 commented 4 years ago

All done, pull either latest, 2 or 2.1.1 docker image tag. Tested with arm64 and rpi3 w/ hypriot

talondnb commented 4 years ago

Working fine again, thank you!

robertolanuti commented 4 years ago

Hi,

I'm geting a smilar error with rpi4 64 bit (using the official OS 32 bit).

uname -a Linux raspberrypi 4.19.118-v7l+ #1311 SMP Mon Apr 27 14:26:42 BST 2020 armv7l GNU/Linux

This are the images that I'm using: app: image: jc21/nginx-proxy-manager:latest

db: image: jc21/mariadb-aria:latest

robertolanuti commented 4 years ago

Update: I'm able to run succesfully it by using the following db image: db: image: yobasystems/alpine-mariadb:latest