एक अल्पाइन आधारित docker छवि के साथ बैश का उपयोग कैसे करें?


211

मैंने Openjdk से एक डॉक चित्र बनाया: 8-jdk-अल्पाइन लेकिन जब मैं साधारण कमांड को निष्पादित करने की कोशिश करता हूं तो मुझे निम्नलिखित त्रुटियां मिलती हैं:

RUN bash
/bin/sh: bash: not found

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

26
गोगलर्स के लिए:docker run --rm -i -t alpine /bin/sh
नबील कादिमी

कंटेनर प्रारंभ करें (अंतःक्रियात्मक): docker exec
-it कंटेन_id

जवाबों:


335

अल्पाइन डॉकटर छवि में डिफ़ॉल्ट रूप से इंस्टॉल नहीं है। आपको प्राप्त करने के लिए निम्नलिखित आदेश जोड़ने होंगे bash:

RUN apk update && apk add bash

यदि आप का उपयोग कर रहे हैं Alpine 3.3+तो आप बस कर सकते हैं

RUN apk add --no-cache bash

डॉक इमेज का आकार छोटा रखने के लिए। (@Sprkysnrky से टिप्पणी के लिए धन्यवाद)


4
की apk upgradeआवश्यकता नहीं है।
मैट

1
मैं RUN /bin/shइसके बजाय @Yuva के पुनर्मिलन का उपयोग करना पसंद करता हूंRUN bin/bash
एलेक्स

1
यह पूरी तरह से आपके ऊपर है, कई लोगों को bashविशिष्ट सुविधा की आवश्यकता होती है।
अनुभा

217

RUN /bin/shबैश के बजाय उपयोग करने का प्रयास करें ।


35
ओपी ने बैश के लिए कहा। श बश नहीं है।
दर्शन २

115
लेकिन यह वैसे भी बहुत उपयोगी टिप्पणी है - ज्यादातर लोग श के साथ ठीक होंगे - और इसके लिए अतिरिक्त 50mb छवि आकार की आवश्यकता नहीं है
kboom

6
आसान और सीधा। ज्यादातर बार हमें केवल शिट्टी कमांड (ls, ps, जो भी हो) चलाने की आवश्यकता होती है, श उन परिदृश्यों को कवर करता है। धन्यवाद!
बेविलाकू

6
मैं बैश की तलाश में था, लेकिन श ने भी मदद की :) :)
वेदरन मारिसेविक।

6
bashपैकेज @kboom के आकार के बारे में 4MB कहते हैं alpine:3.8, मोटे तौर पर इसे दोगुना, लेकिन अभी भी 50MB से दूर है।
14

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

मेरे लिए काम किया।


1
RUN कमांड का प्रारंभिक भाग अनावश्यक है। आप बस RUN apk add --no-cache bashसीधे लिख सकते हैं
मेयोगॉर्डो

1

स्थापित करने के लिए बैश आप कर सकते हैं:

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

यदि आप अपनी छवि में अतिरिक्त आकार नहीं जोड़ना चाहते हैं , तो आप अल्पाइन के साथ ashया shउस जहाज का उपयोग कर सकते हैं ।

संदर्भ: https://github.com/smebberson/docker-alpine/issues/43

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.