Utworzyłem obraz dokera z openjdk: 8-jdk-alpine, ale kiedy próbuję wykonać proste polecenia, pojawiają się następujące błędy:
RUN bash
/bin/sh: bash: not found
RUN ./gradlew build
env: can't execute 'bash': No such file or directory
bash
docker
dockerfile
alpine
diugalde
źródło
źródło
docker run --rm -i -t alpine /bin/sh
Odpowiedzi:
Obraz dokera Alpine nie ma domyślnie zainstalowanej wersji bash. Musisz dodać następujące polecenia, aby uzyskać
bash
:Jeśli używasz
Alpine 3.3+
, możesz po prostu zrobićaby zachować niewielki rozmiar obrazu dokera. (Dzięki komentarzowi @sprkysnrky)
źródło
apk upgrade
nie jest wymagane.RUN /bin/sh
zamiast zamiastRUN bin/bash
bash
określonej funkcji.Spróbuj użyć
RUN /bin/sh
zamiast bash.źródło
bash
pakiet dodaje około 4 MB do rozmiaru, zalpine:3.8
grubsza podwajając go, ale wciąż daleko od 50 MB.pracował dla mnie.
źródło
RUN apk add --no-cache bash
bezpośrednioAby zainstalować bash, możesz:
Jeśli nie chcesz dodawać dodatkowego rozmiaru do obrazu, możesz użyć
ash
lub,sh
który jest dostarczany z alpejskim.Odniesienie: https://github.com/smebberson/docker-alpine/issues/43
źródło