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
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)
Try using RUN /bin/sh
instead of bash.
RUN /bin/sh -c "apk add --no-cache bash"
worked for me.
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: https://github.com/smebberson/docker-alpine/issues/43