受け入れられた答えは、ある抽象的な意味で真実かもしれませんが、それは目前の問題とは完全に無関係です。パスワードを静的に指定する方法が必要です。また、公式画像 を使用している場合を除きます。 、「1つのプロセス、1つのコンテナ」のドグマに従うかどうかに関係なく、それが必要になります。
答えは debconf
に伝える必要があります。 Noninteractive
を使用するには フロントエンド、こちら
で説明されています 。
動作する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<とそれほど大きな違いはありません。 / code>
実際のパスワード設定の処理方法は多少異なりますが。
DEBIAN_FRONTENDを設定することで成功した人もいます
noninteractive
への環境変数 、そのように:
ENV DEBIAN_FRONTEND noninteractive
ただし、それがすべての場合に機能するとは限りません。 debconf
の使用 直接私にとってより信頼できることが証明されました。