Det accepterede svar kan være sandt i en eller anden abstrakt forstand, men det er fuldstændig irrelevant for den aktuelle sag. Du har brug for en måde at angive adgangskoden statisk på. Og medmindre du bruger det officielle billede , det har du brug for, uanset om du følger "én proces, en beholder" dogmet.
Svaret her
fortæller hvordan, men den udelader en nøgleindstilling:du skal stadig fortælle debconf
for at bruge den Ikke-interaktive
front-end, som beskrevet her
.
Her er et eksempel på en fungerende Dockerfile
baseret på ovenstående.
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
Dette er ikke så voldsomt forskelligt fra det official
Nogle mennesker har haft succes ved at indstille DEBIAN_FRONTEND
miljøvariabel til ikke-interaktiv
, sådan:
ENV DEBIAN_FRONTEND noninteractive
Det ser dog ikke ud til at virke i alle tilfælde. Brug af debconf
direkte har vist sig at være mere pålidelig for mig.