Всем привет!
У меня вот такое содержание Dockerfile. Его задача развернуть apache + php + mariadb (и да, мне нужно чтобы БД находилась именно в этом контейнере).
FROM php:7.3-apache
RUN apt-get update -y && apt-get install -y \
curl \
wget \
git \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libzip-dev \
libxml2 libxml2-dev \
&& docker-php-ext-install iconv \
&& docker-php-ext-install mbstring \
&& docker-php-ext-install mysqli \
&& docker-php-ext-install pdo_mysql \
&& docker-php-ext-install gd \
&& docker-php-ext-install -j$(nproc) gd \
&& docker-php-ext-install zip \
&& docker-php-ext-install opcache \
&& docker-php-ext-install soap
RUN echo "\
short_open_tag = On\n\
display_errors = On\n\
error_log = /var/log/php/error.log\n\
error_reporting = E_ALL ^ E_DEPRECATED\n\
log_errors = On\n\
display_startup_errors = On\n\
cgi.fix_pathinfo = 0\n\
date.timezone = Europe/Moscow\n\
mbstring.func_overload = 2\n\
mbstring.internal_encoding = UTF-8\n\
max_input_vars = 10000\n\
post_max_size = 1024M\n\
memory_limit = 512M\n\
upload_max_filesize = 1024M\n\
max_execution_time=60\n\
extension=mcrypt" > /usr/local/etc/php/php.ini
RUN a2enmod rewrite
RUN ln -sf /dev/stdout /var/log/apache2/access.log \
&& ln -sf /dev/stderr /var/log/apache2/error.log
RUN groupadd -r mysql && useradd -r -g mysql mysql
RUN apt-get install -y mariadb-server mariadb-client
RUN /etc/init.d/mysql start && \
mysql -u root -e "CREATE DATABASE web"
RUN mkdir /root/.ssh/
ADD id_rsa /root/.ssh/id_rsa
RUN touch /root/.ssh/known_hosts
RUN ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts
EXPOSE 80 443
CMD ["/etc/init.d/mysql", "start"]
CMD ["apachectl", "-DFOREGROUND"]
Проблема в том, что mysql не запускается при старте контейнера, хотя база создается.
Когда приложение пытается подключится к серверу mysql, получаем ошибку:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Подскажите пожалуйста, куда копать?