Docker Alpine /bin/sh apk not found

Mike Chinaloy picture Mike Chinaloy · Oct 26, 2016 · Viewed 29.2k times · Source

I am building a new Docker image with:

FROM alpine:3.4
RUN apk upgrade --update

However, its failing with the error:

[INFO] /bin/sh: apk: not found

This seems to work fine on my local machine (Mac OSX) but when I try building it on a Linux CentOS 7 machine it fails.

Answer

Robert J picture Robert J · May 20, 2019

I ran into something like this. It completely blew my mind, and I was questioning my sanity for a bit until I realized that /sbin wasn't in my container's PATH.

If you type command -v apk in an interactive session in your container's base image and compare that directory with the container's $PATH that should get you squared away.

If command -v apk doesn't work for you, you could try to find it via

find / -name apk -type f -exec dirname "{}" ";"

To the best of my knowledge this is always in /sbin. However you get there, just ensure that the apk binary's location is part of $PATH