Bagaimana cara menggunakan bash dengan gambar buruh pelabuhan berbasis Alpine?

211

Saya membuat gambar buruh pelabuhan dari openjdk: 8-jdk-alpine tetapi ketika saya mencoba menjalankan perintah sederhana saya mendapatkan kesalahan berikut:

RUN bash
/bin/sh: bash: not found

RUN ./gradlew build
env: can't execute 'bash': No such file or directory
diugalde
sumber
26
Untuk googler:docker run --rm -i -t alpine /bin/sh
Nabil Kadimi
Mulai wadah (secara interaktif): docker exec -it container_id / bin / sh
user2243747

Jawaban:

337

Gambar Alpine docker tidak memiliki bash yang diinstal secara default. Anda perlu menambahkan perintah berikut untuk mendapatkan bash:

RUN apk update && apk add bash

Jika Anda menggunakan Alpine 3.3+maka Anda bisa melakukannya

RUN apk add --no-cache bash

untuk menjaga ukuran gambar buruh pelabuhan kecil. (Terima kasih atas komentar dari @sprkysnrky)

anubhava
sumber
4
Tidak apk upgradediperlukan.
Matt
1
Saya lebih suka menggunakan rekomendasi menggunakan Yuva RUN /bin/shdaripada RUN bin/bash
Alex Montoya
1
Itu sepenuhnya terserah Anda, banyak orang membutuhkan bashfitur tertentu.
anubhava
219

Coba gunakan RUN /bin/shalih-alih bash.

Yuva
sumber
35
OP meminta bash. sh bukan bash.
phil294
115
Tapi ini adalah komentar yang sangat berguna - kebanyakan orang akan baik-baik saja dengan sh - dan itu tidak memerlukan tambahan ukuran gambar
50MB
6
Mudah dan lugas. Seringkali kita hanya perlu menjalankan perintah buruk (ls, ps, apa pun), ia mencakup skenario itu. Terima kasih!
Bevilaqua
6
Saya sedang mencari bash, tetapi dia membantu juga :)
Vedran Maricevic.
6
@ kboom bashpaket menambahkan sekitar 4MB ke ukuran alpine:3.8, kira-kira dua kali lipat, tetapi masih jauh dari 50MB.
valiano
19
RUN /bin/sh -c "apk add --no-cache bash"

bekerja untukku.

pengguna1738546
sumber
1
Bagian awal dari perintah RUN tidak perlu. Anda bisa RUN apk add --no-cache bashlangsung menulis
Meiogordo
1

Untuk Menginstal bash yang dapat Anda lakukan:

RUN apk add --update bash && rm -rf /var/cache/apk/*

Jika Anda tidak ingin menambahkan ukuran ekstra ke gambar Anda, Anda dapat menggunakan ashatau shyang dikirimkan dengan alpine.

Referensi: https://github.com/smebberson/docker-alpine/issues/43

Sahith Vibudhi
sumber