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

  • send keys to terminal
  • docker-compose yml running a script after up
  • Dockerfile won't run script as user with sudo rights
  • Using SUID in Alpine Docker Image
  • Kubernetes: how to debug CrashLoopBackOff
  • Node Docker Container - Pulls from Git Repo for Node App Source Upon Running
  • how do i run a container so that it is running behind a proxy + on running?
  • OpenVSwitch in container with IP-Tables
  • Consul DNS not available on docker bridge IP
  • How to run Consul on docker with initial key-value pair data?
  • Tailing multiple files in a container
  • Docker Wildfly Image with 32 bit Java
  • 3 Solutions collect form web for “How to use bash with an Alpine based docker image?”

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

    RUN apk update && apk add bash
    

    If youre using Alpine 3.3+ then you can just do

    RUN apk add --no-cache bash
    

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

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

    worked for me.

    Try using RUN /bin/sh instead of bash.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.