Я не мог найти никаких решений, как установить mysql-5.6 в контейнер докеров в неинтерактивном режиме. Я нашел следующие команды, но они требуют ввода данных пользователем:
# Update the repo list, execute :
wget http://repo.mysql.com/mysql-apt-config_0.2.1-1debian7_all.deb
dpkg -i mysql-apt-config_0.2.1-1debian7_all.deb
# Install
apt-get update
apt-get install mysql-server-5.6
Есть ли лучшее решение для неинтерактивной установки?
Для конкретной проблемы, например, apt-get install mysql-server-5.6
требуя взаимодействия, необходимо пройти -y
to apt-get.
однако вам потребуется еще несколько шагов, чтобы получить полностью настроенный образ докера.
Я не уверен, работает ли это с dpkg, поскольку я редко использую debian, но в Unix в целом есть способ сделать интерактивную задачу доступной для сценариев:
shell#] cat > answers.txt << EOF
answer1
true
yes
no
answer10
EOF
shell#] interactive-command < answers.txt
Каждая строка в файле answers.txt отвечает на один вопрос в процессе интерактивной настройки. Вам не обязательно использовать документ ЗДЕСЬ, как в примере; vim, pico, nano, все, что может создать файл ответов.
В Dockerfile вы можете ДОБАВИТЬ файл answers.txt, а затем ЗАПУСТИТЬ команду, передав файл ответов по конвейеру на стандартный ввод интерактивной команды.
Установить mysql56
с участием докер, вам действительно стоит использовать следующее:
Пример:
$ docker run -d mysql:5.6
Unable to find image 'mysql:5.6' locally
Trying to pull repository docker.io/library/mysql ... 5.6: Pulling from library/mysql
23286f48d129: Pull complete
cbee5247e891: Pull complete
ed751d9dbe3b: Pull complete
66a9f45a6f88: Pull complete
f50b60617e9c: Pull complete
c03269bf1687: Pull complete
b14dd0099b51: Pull complete
9acd57cae939: Pull complete
3153a44fc5c3: Pull complete
8b36d77ab230: Pull complete
d574478a62d8: Pull complete
ac82a224055d: Pull complete
e3ce3c9ce67d: Pull complete
57c790472a9d: Pull complete
49772bf40877: Pull complete
73f07a1d187e: Pull complete
3446fa8ab4bb: Pull complete
70c40ffe6275: Pull complete
54672d2ddb6f: Pull complete
Digest: sha256:03646869dfecf96f443640f8b9040fbde78a96269aaf47bbfbb505a4c1adcad9
Status: Downloaded newer image for docker.io/mysql:5.6
c6e1f30da1435f2c10e8cd2170d69e67d5cb8e307e1ce52af35506813537971a
$
ИЛИ, ты можешь использовать Docker Compose также.