я пытаюсь построить mysql
на образ докера ubuntu 20.04
, используя файл dockerfile и скрипт конфигурации bash для установки и настройки mysql.
Докерфайл:
ИЗ убунту: 20.04
ЗАПУСК apt-get update -qq && apt-get upgrade -y
ENV MYSQL_DATABASE: «тест»
ENV MYSQL_USER: 'user1'
ENV MYSQL_PASSWORD: «ххххх»
ENV MYSQL_ROOT_PASSWORD: «корень»
КОПИРОВАТЬ . .
RUN DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get -y install tzdata
ЗАПУСК bash configure_mysql.sh
ВЫСТАВИТЬ 3306
Скрипт конфигурации:
#!/бин/баш
set -e # Немедленный выход из скрипта при первой ошибке.
#set -x # Печатать команды и их аргументы по мере их выполнения.
# Проверяем, установлена ли уже среда MySQL
RUN_ONCE_FLAG=~/.mysql_env_build_time
MYSQL_PASSWORD="корень"
если [-e "$RUN_ONCE_FLAG"]; тогда
echo "Среда MySQL Server уже установлена."
выход 0
фи
# Обновить индекс пакетов Ubuntu
apt-получить обновление -y -qq
# Устанавливает MySQL 5.5
echo "mysql-server mysql-server/root_password password $MYSQL_PASSWORD" | debconf-set-selections
echo "mysql-server mysql-server/root_password_again password $MYSQL_PASSWORD" | debconf-set-selections
apt-get install -y mysql-сервер
# Настраивает MySQL
sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
sed -i '/\[mysqld\]/a\lower_case_table_names=1' /etc/mysql/my.cnf
echo "Пароль MySQL установлен на '${MYSQL_PASSWORD}'. Не забудьте удалить ~/.mysql.passwd" | тройник ~/.mysql.passwd;
mysql -u root -p $MYSQL_PASSWORD -e "ПРЕДОСТАВИТЬ ВСЕ НА *.* К root@'%' ИДЕНТИФИЦИРОВАННО '$MYSQL_PASSWORD'; FLUSH PRIVILEGES;";
перезапуск службы mysql
121.122.1
# Устанавливает основные зависимости
echo "установка unzip, git и curl"
apt-get install -y разархивировать git curl
# Настраивает цвет подсказки
sed -i 's/#force_color_prompt=yes/force_color_prompt=yes/g' ~/.bashrc
эхо 'источник ~/.bashrc' >> ~/.bash_profile
источник ~/.bash_profile
# Очистка ненужных пакетов
apt-получить автоматическое удаление -y
apt-получить чистый
# устанавливает флаг "выполнить один раз"
дата > $RUN_ONCE_FLAG
Однако сценарий конфигурации (строка № 29) возвращает следующую ошибку:
Введите пароль: ОШИБКА 2002 (HY000): не удается подключиться к локальному серверу MySQL через сокет «/var/run/mysqld/mysqld.sock» (2)
Команда '/bin/sh -c bash configure_mysql.sh' вернула ненулевой код: 1
Я попытался изменить разрешение, передав:
chown mysql:mysql /var/run/mysqld/
chmod -R 777 /var/run/mysqld/
но это не работает.
Могу я спросить, как я могу решить эту проблему?
Ждем предложений, спасибо!