Приетият отговор може да е верен в някакъв абстрактен смисъл, но е напълно ирелевантен за разглеждания въпрос. Имате нужда от начин да посочите паролата статично. И освен ако не използвате официалното изображение , ще ви трябва това, независимо дали следвате догмата „един процес, един контейнер“.
Отговорът тук
казва как, но пропуска ключова настройка:все пак трябва да кажете на 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
Това не е твърде много различно от това, което Dofilcialcode
Някои хора са постигнали успех, като зададат DEBIAN_FRONTEND
променлива на средата към неинтерактивна
, така:
ENV DEBIAN_FRONTEND noninteractive
Това обаче изглежда не работи във всички случаи. Използване на debconf
директно се оказа по-надежден за мен.