알파인 기반 도커 이미지와 함께 bash를 사용하는 방법은 무엇입니까?


211

openjdk : 8-jdk-alpine에서 도커 이미지를 만들었지 만 간단한 명령을 실행하려고하면 다음 오류가 발생합니다.

RUN bash
/bin/sh: bash: not found

RUN ./gradlew build
env: can't execute 'bash': No such file or directory

26
Google 직원 :docker run --rm -i -t alpine /bin/sh
Nabil Kadimi

시작 컨테이너 (대화 형) : 고정 표시기 간부 - 그것은 container_id / 빈 / SH
user2243747

답변:


336

알파인 도커 이미지에는 기본적으로 bash가 설치되어 있지 않습니다. 다음 명령을 추가해야합니다 bash.

RUN apk update && apk add bash

당신이 사용하는 Alpine 3.3+경우에 당신은 다만 할 수 있습니다

RUN apk add --no-cache bash

도커 이미지 크기를 작게 유지하십시오. (@sprkysnrky의 의견을 보내 주셔서 감사합니다)


4
apk upgrade필요하지 않습니다.
Matt

1
@Yuva RUN /bin/sh대신 추천을 사용하는 것이 좋습니다 RUN bin/bash
Alex Montoya

1
그것은 전적으로 당신에게 달려 있으며, 많은 사람들은 bash특정 기능 이 필요 합니다.
anubhava

218

RUN /bin/shbash 대신 사용하십시오 .


35
OP는 bash를 요청했습니다. sh는 bash가 아닙니다.
phil294

115
그러나 이것은 어쨌든 매우 유용한 의견입니다. 대부분의 사람들은 sh를 사용해도 괜찮을 것입니다. 이미지 크기가 추가로 50MB가 필요하지 않습니다
kboom

6
쉽고 간단합니다. 대부분의 경우 shitty 명령 (ls, ps 등) 만 실행하면됩니다. 감사!
Bevilaqua 2016 년

6
나는 떠들썩한 파티를 찾고 있었다, 그러나 쉬는 :)뿐만 아니라 도움이
베드 란 Maricevic.

6
@kboom bash패키지는의 크기에 약 4MB를 추가하여 alpine:3.8약 두 배로 증가하지만 여전히 50MB에서 멀어집니다.
valiano 14

19
RUN /bin/sh -c "apk add --no-cache bash"

나를 위해 일했다.


1
RUN 명령의 초기 부분은 필요하지 않습니다. RUN apk add --no-cache bash직접 작성할 수 있습니다
Meiogordo

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.