स्वीकृत उत्तर कुछ अमूर्त अर्थों में सत्य हो सकता है, लेकिन यह इस मामले में पूरी तरह से अप्रासंगिक है। आपको पासवर्ड को स्थिर रूप से निर्दिष्ट करने का एक तरीका चाहिए। और जब तक आप आधिकारिक छवि का उपयोग नहीं कर रहे हैं , आपको इसकी आवश्यकता होगी कि आप "एक प्रक्रिया, एक कंटेनर" सिद्धांत का पालन करते हैं या नहीं।
जवाब यहां
बताता है कि कैसे, लेकिन यह एक महत्वपूर्ण सेटिंग छोड़ देता है:आपको अभी भी debconf
. बताना होगा गैर-सहभागी
. का उपयोग करने के लिए फ्रंट-एंड, जैसा कि बताया गया है यहां
।
यहां एक कार्यशील Dockerfile
का उदाहरण दिया गया है उपरोक्त के आधार पर।
FROM ubuntu:latest
MAINTAINER Jonathan Strange <[email protected]>
RUN apt-get update \
&& apt-get install -y apt-utils \
&& { \
echo debconf debconf/frontend select Noninteractive; \
echo mysql-community-server mysql-community-server/data-dir \
select ''; \
echo mysql-community-server mysql-community-server/root-pass \
password 'JohnUskglass'; \
echo mysql-community-server mysql-community-server/re-root-pass \
password 'JohnUskglass'; \
echo mysql-community-server mysql-community-server/remove-test-db \
select true; \
} | debconf-set-selections \
&& apt-get install -y mysql-server apache2 python python-django \
python-celery rabbitmq-server git
यह आधिकारिक Dockerfile<से बहुत अलग नहीं है। /कोड>
करता है -- हालांकि वे वास्तविक पासवर्ड कॉन्फ़िगरेशन को कुछ अलग तरीके से संभालते हैं।
कुछ लोगों को DEBIAN_FRONTEND सेट करके
सफलता मिली है। पर्यावरण चर से गैर-संवादात्मक
, इस तरह:
ENV DEBIAN_FRONTEND noninteractive
हालाँकि, यह सभी मामलों में काम नहीं करता है। debconf
का उपयोग करना सीधे मेरे लिए अधिक विश्वसनीय साबित हुआ है।