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/

  • How to run a docker containter linked to a previously created volume
  • Best Kubernetes Nginx Architecture
  • When building Jenkins in Docker plugins fail to install
  • docker-machine create breaks at `DBG | Filling zeroes`
  • How to create env-file in centos 7 for docker
  • Should I be concerned about excess, non-running, Docker containers?
  • 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?

  • Unable to Pull image from quay.io: ERROR x509: certificate signed by unknown authority
  • Getting “can't cd” error when when building using dockerfile
  • docker: Error response from daemon: client is newer than server
  • Cannot connect Docker container to Weave network
  • Pull docker image from AWS ECR using remote API
  • How to visually see the browser being automated on Multihost docker on windows 10 and Linux ?
  • 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.