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...
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
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)
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:
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.