как использовать здесь-строки в Dockerfile? - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь установить mysql -сервер в debian: buster, используя Dockerfile, как вы можете видеть в следующем коде:

Dockerfile:

From debian:buster

RUN apt update

RUN apt install -y gnupg wget lsb-release

RUN wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb

RUN printf "1\n1\n4\n" | dpkg -i mysql-apt-config_0.8.13-1_all.deb

RUN apt update

RUN debconf-set-selections <<< 'mysql-community-server mysql-community-server/root-pass password your_password'

RUN debconf-set-selections <<< 'mysql-community-server mysql-community-server/re-root-pass password your_password'

RUN apt-get -y install mysql-server

CMD bash

, и я хотел установить это не интерактивно (без вопросов о конфигурации), поэтому я использовал команду debconf, чтобы сделать это, но он не работает, когда я пытаюсь запустить его с RUN в Dockerfile, и эта ошибка возникает во время сборки:

enter image description here

Итак, как я могу использовать здесь-строки в Dockerfile?

1 Ответ

1 голос
/ 07 января 2020

Вам не нужны здесь строки. Вы уже используете альтернативу ранее в своем Dockerfile.

RUN printf '%s\n' 'mysql-community-server mysql-community-server/root-pass password your_password' | debconf-set-selections
RUN printf '%s\n' 'mysql-community-server mysql-community-server/re-root-pass password your_password' | debconf-set-selections

echo не ведет себя согласованно во всех других реализациях, совместимых с POSIX; предпочитайте printf вместо.

...