【发布时间】:2018-05-01 02:35:20
【问题描述】:
我正在尝试创建 dockerfile 来为本地开发环境构建映像,但每次我让 docker 运行映像时,数据库服务器 (mariadb/mysql) 都会以状态 0 退出。
2017-11-17 08:36:10,854 CRIT Supervisor running as root (no user in config file)
2017-11-17 08:36:10,864 INFO RPC interface 'supervisor' initialized
2017-11-17 08:36:10,865 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2017-11-17 08:36:10,865 INFO supervisord started with pid 1
2017-11-17 08:36:11,873 INFO spawned: 'httpd' with pid 9
2017-11-17 08:36:11,876 INFO spawned: 'mariadb' with pid 10
2017-11-17 08:36:12,973 INFO success: httpd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2017-11-17 08:36:12,974 INFO success: mariadb entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
**2017-11-17 08:36:13,327 INFO exited: mariadb (exit status 0; expected)**
无论哪种类型的数据库服务器(MariaDB/MySQL),我都会尝试将其添加到 dockerfile 中,它都会退出。
Dockerfile
FROM centos:centos7
# Install tools
RUN yum -y install curl wget unzip git vim python-setuptools yum-utils which epel-release
# Install Python and Supervisor
RUN yum -y install python-setuptools \ && mkdir -p /var/log/supervisor \ && easy_install supervisor
# Install Apache
RUN yum -y install httpd
# Install Remi Updated PHP 7
RUN wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm \ && rpm -Uvh remi-release-7.rpm \ && yum-config-manager --enable remi-php70 \ && yum -y install php php-devel php-gd php-pdo php-soap php-xmlrpc php-xml
# Reconfigure Apache
RUN sed -i 's/AllowOverride None/AllowOverride All/g' /etc/httpd/conf/httpd.conf \ && chown root:apache /var/www/html \ && chmod g+s /var/www/html
# Install MariaDB
RUN yum -y install mariadb-server
COPY supervisord.conf /etc/supervisord.conf
EXPOSE 80 3306
CMD ["/usr/bin/supervisord"]
supervisord.conf
[unix_http_server]
file=/tmp/supervisor.sock
[supervisord] nodaemon=true
[program:mariadb] command=/usr/bin/mysqld_safe
[program:httpd] command=/usr/sbin/httpd -DFOREGROUND
[group:allservices] programs=mariadb,httpd
[rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl] serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket
【问题讨论】:
-
你能告诉我
supervisord配置文件吗?请记住,您需要在前台运行数据库 -
感谢您的快速回复,我刚刚添加了 supervisord 配置文件。在 mariadb 命令中添加 -DFOREGROUND 并没有解决它。但是我对supervisord不是很熟悉......