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/

  • Docker not adding existing file
  • can't npm install bcrypt in my docker image
  • Kafka setup with docker-compose
  • AWS + Docker + Puma + Rails + S3 , broken upload after few hours of uploading
  • Dynamic Docker Registry
  • Docker python client API copy
  • 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?

  • Docker application upload on AWS elastic beanstalk fails
  • Docker won't start on Windows: Not Enough memory to start docker
  • How to pass Chef data bag secret to a docker container?
  • Why are Docker container images so large?
  • How to install a pip package locally in Dockerfile?
  • Docker container prefer host eth0 over wlan0 for internet
  • One Solution collect form web for “Sh : file not found on alpine Docker image”

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.