Ho creato un'immagine docker da openjdk: 8-jdk-alpine ma quando provo ad eseguire semplici comandi ottengo i seguenti errori:
RUN bash
/bin/sh: bash: not found
RUN ./gradlew build
env: can't execute 'bash': No such file or directory
Ho creato un'immagine docker da openjdk: 8-jdk-alpine ma quando provo ad eseguire semplici comandi ottengo i seguenti errori:
RUN bash
/bin/sh: bash: not found
RUN ./gradlew build
env: can't execute 'bash': No such file or directory
Risposte:
L'immagine docker alpina non ha bash installato per impostazione predefinita. Sarà necessario aggiungere i seguenti comandi per ottenere bash
:
RUN apk update && apk add bash
Se stai usando Alpine 3.3+
, puoi semplicemente farlo
RUN apk add --no-cache bash
per mantenere ridotte le dimensioni dell'immagine della finestra mobile. (Grazie al commento di @sprkysnrky)
apk upgrade
è richiesto.
RUN /bin/sh
invece di RUN bin/bash
bash
funzionalità specifiche.
Prova a usare RUN /bin/sh
invece di bash.
bash
pacchetto aggiunge circa 4 MB alla dimensione di alpine:3.8
, raddoppiandolo all'incirca, ma comunque lontano da 50 MB.
RUN /bin/sh -c "apk add --no-cache bash"
ha funzionato per me.
RUN apk add --no-cache bash
direttamente
Per installare bash puoi fare:
RUN apk add --update bash && rm -rf /var/cache/apk/*
Se non si desidera aggiungere dimensioni extra all'immagine, è possibile utilizzare ash
o sh
che viene fornito con alpino.
Riferimento: https://github.com/smebberson/docker-alpine/issues/43
docker run --rm -i -t alpine /bin/sh