Sh : file not found on alpine Docker image
I installed Docker on my Raspberry Pi3.
I want to install the “registry” image. As I do not find it in ARM, I have built an AMR version.
I recompiled the binary from the git https://github.com/docker/distribution/
I get a functional binary:
# registry --version src_docker/go/bin/registry github.com/docker/distribution v2.6.0+unknown
Then I left the git https://github.com/docker/distribution-library-image to customize the Dockerfile.
FROM arm32v6/alpine:3.5 RUN set -ex \ && apk add --no-cache ca-certificates apache2-utils COPY ./registry/registry /bin/registry COPY ./registry/config-example.yml /etc/docker/registry/config.yml VOLUME ["/var/lib/registry"] EXPOSE 5000 COPY docker-entrypoint.sh /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] CMD ["/etc/docker/registry/config.yml"]
I have of course to replace the “registry / registry” by the binary that I compiled.
I build image :
docker build . -t ikise_arm/registry
But when I execute the image it does not find the binary
# docker run -ti ikise_arm/registry:latest /entrypoint.sh: exec: line 10: registry: not found
If I disable the ENTRYPOINT and explore the files I find the biary but impossible to execute
# docker run -ti ikise_arm/registry:latest / # ls -al /bin/r* lrwxrwxrwx 1 root root 12 Mar 2 20:19 /bin/reformime -> /bin/busybox -rwxr-xr-x 1 root root 19940588 Jun 14 12:27 /bin/registry lrwxrwxrwx 1 root root 12 Mar 2 20:19 /bin/rev -> /bin/busybox lrwxrwxrwx 1 root root 12 Mar 2 20:19 /bin/rm -> /bin/busybox lrwxrwxrwx 1 root root 12 Mar 2 20:19 /bin/rmdir -> /bin/busybox lrwxrwxrwx 1 root root 12 Mar 2 20:19 /bin/run-parts -> /bin/busybox / # /bin/registry sh: /bin/registry: not found
Do you have any idea where the problem may come from?
One Solution collect form web for “Sh : file not found on alpine Docker image”
So I adapted the image https://github.com/docker-library/golang/tree/master/1.8/alpine3.6
To compile the binary registry