Docker: How to use bash with an Alpine based docker image?

I created a docker image from openjdk:8-jdk-alpine but when I try to execute simple commands I get the following errors:

RUN bash /bin/sh: bash: not found RUN ./gradlew build env: can't execute 'bash': No such file or directory 
2

5 Answers

Alpine docker image doesn't have bash installed by default. You will need to add the following commands to get bash:

RUN apk update && apk add bash 

If you're using Alpine 3.3+ then you can just do:

RUN apk add --no-cache bash 

To keep the docker image size small. (Thanks to comment from @sprkysnrky)

4

Try using RUN /bin/sh instead of bash.

12
RUN /bin/sh -c "apk add --no-cache bash" 

worked for me.

1

To Install bash you can do:

RUN apk add --update bash && rm -rf /var/cache/apk/* 

If you do not want to add extra size to your image, you can use ash or sh that ships with alpine.

Reference:

If you have the option (for instance if you are just creating the script), using an alpine image with bash installed such as alpine-bash might be clever.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like