bashdockershelldockerfilealpine-linux

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


I created a docker image from openjdk:8-jdk-alpine and I want to use bash, rather than sh as my shell, however 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

Solution

  • 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)

    If you just want to connect to the container and don't need bash, you can use:

    docker run --rm -i -t alpine /bin/sh --login