Как установить MySQL-сервер в Dockerfile? - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть комплекс Dockerfile, который устанавливает намного больше, чем просто mysql-server, поэтому я не могу начать с существующего контейнера mysql.

При удалении всего лишнего я получаю это Dockerfile

FROM ubuntu:latest

ENV MYSQL_ROOT_PASSWORD=root
ENV MYSQL_ROOT_USER=root
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update
RUN apt-get install -y apt-utils
RUN apt-get install -y mysql-server

RUN usermod -d /var/lib/mysql/ mysql
RUN service mysql start 

К сожалению, mysql не хочет запускаться:

 ---> 57a66bd64c2c
Step 8/9 : RUN usermod -d /var/lib/mysql/ mysql
 ---> Running in 596df248c2e4
 ---> ee78442bcc56
Step 9/9 : RUN service mysql start
 ---> Running in 0d9e5803cf33
 * Starting MySQL database server mysqld
   ...fail!
The command '/bin/sh -c service mysql start' returned a non-zero code: 1

В чем моя ошибка?

1 Ответ

0 голосов
/ 18 ноября 2018

Похоже, вы удалили самые важные части вашего файла Docker.Вот официальный файл Docker репо MySQL.

FROM oraclelinux:7-slim
ENV PACKAGE_URL https://repo.mysql.com/yum/mysql-8.0-community/docker/x86_64/mysql-community-server-minimal-8.0.2-0.1.dmr.el7.x86_64.rpm

# Install server
RUN rpmkeys --import http://repo.mysql.com/RPM-GPG-KEY-mysql \
  && yum install -y $PACKAGE_URL \
  && yum install -y libpwquality \
  && rm -rf /var/cache/yum/*
RUN mkdir /docker-entrypoint-initdb.d

VOLUME /var/lib/mysql

COPY docker-entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

EXPOSE 3306 33060
CMD ["mysqld"]

Вам необходимо указать правильный источник с правильной версией, чтобы получить изображение из.и выставить правильные порты, разделить тома для работы MySQL.Ваш контейнер может быть неисправен из-за чего-либо из этого.Я бы сказал, удалить часть MySQL из вашего dockerfile и запустить остальную часть контейнера.Используйте официальный образ mySQL и установите его в отдельный контейнер.а затем вы можете подключить базу данных с другими приложениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...