huan / docker-simple-mail-forwarder

Simplest and Smallest Email Forward Service based on Docker.
https://hub.docker.com/r/zixia/simple-mail-forwarder/
Apache License 2.0
544 stars 88 forks source link

bad interpreter: No such file or directory #79

Closed rfvgyhn closed 3 years ago

rfvgyhn commented 3 years ago

In both the 1.3 and 1.2 docker images, I receive the following errors:

/entrypoint.sh: /init: /bin/execlineb: bad interpreter: No such file or directory /entrypoint.sh: line 321: /init: No error information

Running 1.1 doesn't have the issue. Were there any config changes/additions/etc... that maybe I missed?

Full log:

>> Chdir to /app...
 ____  _                 _         __  __       _ _
/ ___|(_)_ __ ___  _ __ | | ___   |  \/  | __ _(_) |
\___ \| | '_ ` _ \| '_ \| |/ _ \  | |\/| |/ _` | | |
 ___) | | | | | | | |_) | |  __/  | |  | | (_| | | |
|____/|_|_| |_| |_| .__/|_|\___|  |_|  |_|\__,_|_|_|
                  |_|
  _____                                _
 |  ___|__  _ ____      ____ _ _ __ __| | ___ _ __
 | |_ / _ \| '__\ \ /\ / / _` | '__/ _` |/ _ \ '__|
 |  _| (_) | |   \ V  V / (_| | | | (_| |  __/ |
 |_|  \___/|_|    \_/\_/ \__,_|_|  \__,_|\___|_|

Source#2bacd4b Thu Oct 15 00:02:48 2020 +0800 * master
Built on Fri Sep 11 18:33:58 UTC 2020 by buildkitsandbox

>> END SMF_DOMAIN found. value:[*****.*****.***]
>> ENV SMF_CONFIG found. value:[@*****.***:*****@*****.***]
>> ARGV arguments found. value:[start]
>> SMF_CONFIG found in ENV. use this settings for forward maps.
>> Setting password[********] for user @*****.*** ...
postmap: warning: /etc/postfix/virtual.db: duplicate entry: "@*****.***"
>> Set hostname to *****.*****.***
>> Start self-testing...
1..17
ok 1 SMF_CONFIG exist
ok 2 SMF_DOMAIN exist
ok 3 virtual maping source is set
ok 4 virtual maping data is set
ok 5 virtual maping db is set
ok 6 system hostname FQDN resolvable
ok 7 postfix myhostname FQDN & resolvable
ok 8 check other hostname setting
ok 9 confirm postfix is running
ok 10 confirm port 25 is open
ok 11 crond is running # skip skip this for 0.3.0 -> 0.4.0
ok 12 ESMTP STATTLS supported
ok 13 ESMTP AUTH supported
ok 14 ESMTP STARTTLS connect ok
ok 15 create user testi@testo.com by password test
ok 16 ESMTP AUTH by testi@testo.com/test
ok 17 ESMTP TLS AUTH by testi@testo.com/test
>> Test PASSED

>> CONGRATULATIONS! System is UP and You are SET!
>> Powered by SMF - a Simple Mail Forwarder
>> View in DockerHub: https://hub.docker.com/r/zixia/simple-mail-forwarder

>> Init System for Servicing...
/entrypoint.sh: /init: /bin/execlineb: bad interpreter: No such file or directory
/entrypoint.sh: line 321: /init: No error information

docker-compose

version: '3'
services:

  mail:
    container_name: mail
    restart: always
    image: zixia/simple-mail-forwarder:latest
    ports:
      - "25:25"
    volumes:
      - /home/user/mail/certs:/etc/postfix/cert
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro

    environment:
      SMF_CONFIG: "@*****.***:*****@*****.***"
      SMF_DOMAIN: *****.*****.***
      VIRTUAL_HOST: *****.*****.***
    networks:
      - proxy
    labels:
      - "traefik.enable=true"
      - "traefik.tcp.routers.mail.entrypoints=mail"
      - "traefik.tcp.routers.mail.service=mail"
      - "traefik.tcp.routers.mail.rule=HostSNI(`*****.*****.***`)"
      - "traefik.tcp.routers.mail.tls=true"
      - "traefik.tcp.routers.mail.tls.certresolver=le"
      - "traefik.tcp.services.mail.loadbalancer.server.port=25"
networks:
  proxy:
    external: true
zaneclaes commented 3 years ago

Likewise. My cluster pulled the v1.2 image automatically, which would not even start.

I didn't have monitoring on the service, so my company's emails were broken for 2 days before I noticed.

I tried to downgrade to 1.1, but this old version appears to not have authentication support. If you exec -it the container and cat the entrypoint.sh, there is no reference to SMF_RELAYAUTH. Has the working version of this tool disappeared from docker? It seems like latest got overwritten, and now there is no working image.

zaneclaes commented 3 years ago

I ended up checking out sha f50ed9693194ebe65d816825f1951921b792ec50 (from a few months ago), building it, and pushing to inzania/email:latest. This version supports SMF_RELAYAUTH and is working just like it used to be before the cluster update.

mikafouenski commented 3 years ago

Hello I got the same issue...

I tracked down this issue to the update of the S6 overlay by this 08daf27.

❯ dco -f simple-mail-forwarder.yml run --rm --entrypoint /bin/bash mail
bash-5.0# ls /init
/init
bash-5.0# vi /init
bash-5.0# ls /bin/execlineb
ls: cannot access '/bin/execlineb': No such file or directory
bash-5.0# find / -name "execlineb"
/usr/bin/execlineb
bash-5.0# 

Every S6 script use /bin/execlineb as shell bang.

We need to split the overlay extraction as described on their page https://github.com/just-containers/s6-overlay#bin-and-sbin-are-symlinks .

Here https://github.com/huan/docker-simple-mail-forwarder/blob/master/Dockerfile#L34-L36

Mika

huan commented 3 years ago

Hi all,

I'm terribly sorry for causing this problem with my mistake. I have sent a fix and hope this issue has been solved.

Please try the v1.2 that I have just re-published on the docker hub, which I have tested, and the /bin/execlineb should be OK now. (the tag with 1.3 was deleted)

Please feel free to let me know if there are still any problems. ( and PR is welcome )

Explanation

When I tried to build a multi-platform docker image with buildx (#76), I do not know how to select the s6-overlay with the right platform version in the Dockerfile with different platforms.

That's the time when I saw a nobin version in the s6-overlay release, which I thought it's platform-independent and I can just use it.

However, the nobin version is just the scripts without any binary, which will not be able to work, and that's the reason that makes this trouble for us.

See: The "nobin" variant is strictly the scripts of the s6-overlay, with absolutely no binaries.

rfvgyhn commented 3 years ago

Looks like it's working now. Thanks for the quick-fix.

zaneclaes commented 3 years ago

+1, back up and running. Thanks for all the hard work on this, @huan, it's great to have such a useful tool.

huan commented 3 years ago

Great to know that everything back to normal now, cheers!