Перезапустите MySQL в Dockerfile

0

Команда:

RUN DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server
RUN service mysql restart
RUN mysql -u root -e "create database test"

MySQL не перезапускается:

* Stopping MySQL database server mysqld
 ...done.
* Starting MySQL database server mysqld
 ...fail!

Идея состоит в том, что если я запустил изображение в качестве контейнера, и я перезапустил его там, это нормально, и он перезапускается, но не здесь. В основном я хочу создать изображение с БД.

Есть идеи?

  • 0
    Используйте Entrypoint вместо Run
  • 0
    Я новичок в докере, вы можете дать мне пример плз?
Показать ещё 2 комментария
Теги:
docker
dockerfile

1 ответ

1

Если вы используете Dockerfile, тогда вы должны поместить все операции установки в RUN и поместить все исполнения в раздел ENTRYPOINT.

Например, в вашем случае вы можете использовать следующие инструкции:

RUN DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server
ENTRYPOINT service mysql start && bash

Это руководство должно помочь вам https://ollyxar.com/blog/docker-phpstorm-windows

  • 0
    Если я создаю образ докера без точки входа, я запускаю его так: docker run --name example1 -i -d -p 127.0.0.1:80:80 myimage (таким образом я могу зайти в свой браузер и увидеть apache и взаимодействовать в браузер) Если я использую ENTRYPOINT всякий раз, когда я пытаюсь запустить изображение как контейнер с той же командой, контейнер автоматически умирает, как я могу запустить его в фоновом режиме и все же выполнить скрипт / команду в точке входа?
  • 0
    Вы можете использовать docker exec -it container_name bash для входа в определенный контейнер
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню