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

  • Docker and .bash_history
  • Explanation of the “--upgrade add” command for Alpine Linux
  • How do I run nginx -t when nginx is running inside a docker container? [duplicate]
  • ECS Docker Container get env variable running cron
  • MySQL Connection in Docker container
  • Fail to create postgres extensions through bash script
  • Virtualbox inside docker container without host dependency
  • How do I write a unit test to check for correct behavior under conditions of transient system resource constraints?
  • Spawn multiple fleet-units of same app on same node (CoreOS + Fleet)
  • Unable to create docker virtual machine
  • Dockerfile build error and writes to another folder
  • Docker API Security - How prevent certain functionality from client?
  • 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.