Přijatá odpověď může být pravdivá v určitém abstraktním smyslu, ale je zcela irelevantní pro danou věc. Potřebujete způsob, jak zadat heslo staticky. A pokud nepoužíváte oficiální obrázek , budete to potřebovat bez ohledu na to, zda se budete řídit dogmatem „jeden proces, jeden kontejner“.
Odpověď zde
říká jak, ale vynechává klíčové nastavení:stále musíte sdělit debconf
k použití Neinteraktivní
front-end, jak je popsáno zde
.
Zde je příklad fungujícího Dockerfile
na základě výše uvedeného.
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
To se příliš neliší od toho, co code
Někteří lidé dosáhli úspěchu díky nastavení DEBIAN_FRONTEND
proměnná prostředí na neinteraktivní
, asi takhle:
ENV DEBIAN_FRONTEND noninteractive
Zdá se však, že to nefunguje ve všech případech. Pomocí debconf
přímo se pro mě ukázalo jako spolehlivější.