반응형
Docker CentOS - mariadb(종료 상태 0, 예상됨)
로컬 개발 환경에 대한 이미지를 구축하기 위해 도커 파일을 생성하려고 하는데 도커가 이미지를 실행하도록 할 때마다 DB 서버(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)**
도커 파일에 DB 서버의 종류(MariaDB/MySQL)를 추가하려고 해도 종료됩니다.
도커파일
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"]
supervisor.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
MariaDB 이미지를 디버깅할 수 있는 좋은 전략을 찾길 권합니다.
내 해결책은 도커 파일에 임시 CMD를 설정하는 것입니다.
CMD ["sleep", "999999999999999"]
따라서 나중에 시작된 컨테이너에서 bash 또는 sh를 실행하고 MariaDB start binary 또는 supervisor 명령을 실행할 수 있습니다.
그러나 각 컨테이너가 하나의 프로세스를 실행하는 시나리오를 추구하면서, 진지하게 당신이 MariaDB와 PHP7을 분리하는 스택을 구성하는 것을 추천합니다(나는 이것에 대해 PHP가 좋지 않다는 것을 알고 있습니다.먼저 MariaDB를 PHP에서 분리합니다 ;)
언급URL : https://stackoverflow.com/questions/47348571/docker-centos-mariadb-exit-status-0-expected
반응형
'programing' 카테고리의 다른 글
워드프레스에서 비주얼 작곡가를 위한 맞춤 메타박스 지원을 만드는 방법은? (0) | 2023.10.17 |
---|---|
MySQL: N개의 행을 선택하지만 하나의 열에 고유한 값만 있음 (0) | 2023.10.17 |
FormDefault 요소는 XSD에서 무엇을 합니까? (0) | 2023.10.12 |
삽입 전 MariaDB 트리거가 작동하지 않습니다. (0) | 2023.10.12 |
window.location.pathname에 헤더 추가 (0) | 2023.10.12 |