bad interpreter: No such file or directory
Closed this issue · 7 comments
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
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.
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.
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
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.
Looks like it's working now. Thanks for the quick-fix.
+1, back up and running. Thanks for all the hard work on this, @huan, it's great to have such a useful tool.
Great to know that everything back to normal now, cheers!