我正在运行一个Ubuntu19.04发行版,并有一个Dockerfile,当我们到达步骤7;
Step 7/11 : RUN (/usr/bin/mysqld_safe &); sleep 5; mysqladmin -u root -proot create wordpress我们得到了;
2019-10-09T12:18:34.365421Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket
'/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!查看错误消息:mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
cookie@cookie-K501UX:~/code/docker$ ls -la /var/run/mysqld
total 8
drwxr-xr-x 2 mysql mysql 100 Oct 9 13:10 .
drwxr-xr-x 36 root root 1060 Oct 9 13:10 ..
-rw-r----- 1 mysql mysql 6 Oct 9 13:10 mysqld.pid
srwxrwxrwx 1 mysql mysql 0 Oct 9 13:10 mysqld.sock
-rw------- 1 mysql mysql 6 Oct 9 13:10 mysqld.sock.lock的确如此。和Check that mysqld is running
$ sudo systemctl status mysql
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-10-09 13:26:21 BST; 8min ago它是。如果套接字文件存在,并且MySQL守护进程正在运行,那么问题是什么?
发布于 2019-10-10 23:56:45
问题是,您正在等待5秒钟,并且可能需要6秒钟或更长时间。
在运行mysqladmin create wordpress之前,您必须检查MYSQL是否准备就绪。
所以您可以在mysqladmin ping中使用一个循环。
因此,RUN命令可以是
RUN (/usr/bin/mysqld_safe &); \
while( ! mysqladmin ping ) ;do sleep 1 ; date ; done ; \
mysqladmin -u root -proot create wordpress发布于 2019-10-10 09:56:28
有关将编译的最新Dockerfile,请参见:
FROM ubuntu:19.04
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get -y install \
apache2 \
php7.2 \
php7.2-mysql \
supervisor \
wget
RUN echo 'mysql-server mysql-server/root_password password root' | debconf-set-selections && \
echo 'mysql-server mysql-server/root_password_again password root' | debconf-set-selections
RUN apt-get install -qqy mariadb-server
RUN wget http://wordpress.org/latest.tar.gz && \
tar xzvf latest.tar.gz && \
cp -R ./wordpress/* /var/www/html && \
rm /var/www/html/index.html
RUN (/usr/bin/mysqld_safe &); sleep 5; mysqladmin -u root -proot create wordpress
COPY wp-config.php /var/www/html/wp-config.php
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
EXPOSE 80
CMD ["/usr/bin/supervisord"]https://unix.stackexchange.com/questions/545919
复制相似问题