How to use bash with an Alpine based docker image?

2020-01-30 02:33发布

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

4条回答
够拽才男人
2楼-- · 2020-01-30 03:03
RUN /bin/sh -c "apk add --no-cache bash"

worked for me.

查看更多
女痞
3楼-- · 2020-01-30 03:14

Try using RUN /bin/sh instead of bash.

查看更多
萌系小妹纸
4楼-- · 2020-01-30 03:16

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)

查看更多
爱情/是我丢掉的垃圾
5楼-- · 2020-01-30 03:17

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

查看更多
登录 后发表回答