Docker"mysqld: невозможно прочитать dir из '/etc/mysql/mysql.conf.d' (os errno 2 - нет такого файла или каталога)"

Matteo Cacciola спросил: 28 марта 2018 в 04:07 в: mysql

Я установил docker-engine и docker-compose на свой компьютер Ubuntu 16.04.

При установке docker-engine я выполнил следующие действия: https://www.0x90.it/come-installare-e -usare-docker-su-ubuntu-16-04 /

При запуске команды "docker-compose -f docker-compose-dev.yml up -d" проблема заключается в том, что служба "erentpay_db_1" бежит и немедленно останавливается. Вот содержимое файла docker-compose-dev.yml

docker-compose-dev.yml

version: '2'services:
    db:
        build: ./docker/mysql
        volumes:
            - ./docker/mysql/data:/var/lib/mysql
            - ./log/mysql:/var/log/mysql
        environment:
            - MYSQL_ROOT_HOST
            - MYSQL_ALLOW_EMPTY_PASSWORD
            - MYSQL_DATABASE
            - MYSQL_USER
            - MYSQL_PASSWORD
        ports:
            - '3307:3306'    nginx:
        build: ./docker/nginx
        ports:
          - '80:80'
          - '443:443'
        volumes:
          - ./log/nginx:/var/log/nginx
          - ./:/var/www/    php:
        build:
            context: ./docker/php
            args:
                - APP_ENV=dev
        volumes:
            - ./:/var/www/
        environment:
            - SYMFONY__DATABASE__HOST=${MYSQL_ROOT_HOST}
            - SYMFONY__DATABASE__PORT=${MYSQL_PORT}
            - SYMFONY__DATABASE__NAME=${MYSQL_DATABASE}
            - SYMFONY__DATABASE__USER=${MYSQL_USER}
            - SYMFONY__DATABASE__PASSWORD=${MYSQL_PASSWORD}
            - SYMFONY__RABBITMQ__HOST=${RABBITMQ_HOST}
            - SYMFONY__RABBITMQ__PORT=${RABBITMQ_PORT}
            - SYMFONY__RABBITMQ__USER=${RABBITMQ_USER}
            - SYMFONY__RABBITMQ__PASSWORD=${RABBITMQ_PASSWORD}
            - SYMFONY__RABBITMQ__VHOST=${RABBITMQ_VHOST}
            - SYMFONY__STRIPE__PUBLIC__KEY=${STRIPE_PUBLIC_KEY}
            - SYMFONY__STRIPE__SECRET__KEY=${STRIPE_SECRET_KEY}
            - SYMFONY__PLAID__CLIENT__ID=${PLAID_CLIENT_ID}
            - SYMFONY__PLAID__PUBLIC__KEY=${PLAID_PUBLIC_KEY}
            - SYMFONY__PLAID__SECRET__KEY=${PLAID_SECRET_KEY}
            - SYMFONY__PLAID__ENV=${PLAID_ENV}
            - SYMFONY__MAILER__HOST=${MAILER_HOST}
            - SYMFONY__MAILER__USER=${MAILER_USER}
            - SYMFONY__MAILER__PASSWORD=${MAILER_PASSWORD}
            - SYMFONY__MAILER__TRANSPORT=${MAILER_TRANSPORT}
            - SYMFONY__MAILER__PORT=${MAILER_PORT}
            - SYMFONY__MAILER__ENCRYPTION=${MAILER_ENCRYPTION}
            - SYMFONY__CONTACT__EMAIL=${CONTACT_EMAIL}
            - SYMFONY__DOCUSIGN__INTEGRATOR__KEY=${DOCUSIGN_INTEGRATOR_KEY}
            - SYMFONY__DOCUSIGN__USERNAME=${DOCUSIGN_USERNAME}
            - SYMFONY__DOCUSIGN__PASSWORD=${DOCUSIGN_PASSWORD}
            - SYMFONY__DOCUSIGN__ENVIRONMENT=${DOCUSIGN_ENVIRONMENT}
            - SYMFONY__DOCUSIGN__ACCOUNT__ID=${DOCUSIGN_ACCOUNT_ID}
            - SYMFONY__GOOGLE__ANALYTICS__ID=${GOOGLE_ANALYTICS_ID}    rabbitmq:
        image: rabbitmq
        environment:
            - HOSTNAME=${RABBITMQ_HOST}
            - RABBITMQ_NODENAME=rabbitmq
            - RABBITMQ_DEFAULT_USER=${RABBITMQ_USER}
            - RABBITMQ_DEFAULT_PASS=${RABBITMQ_PASSWORD}
            - RABBITMQ_DEFAULT_VHOST=${RABBITMQ_VHOST}
        ports:
            - 15672:15672
            - 5672:5672

Здесь файлы в папке ./ docker / mysql

./ docker / mysql / Dockerfile

FROM mysql:latestCOPY my.cnf /etc/mysql/my.cnfRUN rm -rf /var/lib/apt/lists/*

./ docker / mysql / my.cnf

# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

Ошибка, возвращаемая "docker logs erentpay_db_1",

ОШИБКА: mysqld не удалось выполнить проверку команды config: "mysqld --verbose --help"

mysqld: Не удается прочитать dir из '/etc/mysql/mysql.conf.d' ( OS errno 2 - файл или каталог Nosuch) mysqld: [ERROR] Неустранимая ошибка по умолчанию. Программа прервана!

Ниже приведен список изображений

изображений докеров -a

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
erentpay_db         latest              7f51bcc584bd        3 minutes ago       445MB
erentpay_php        latest              fd39b51935a7        4 minutes ago       876MB
erentpay_nginx      latest              df49934ad7e8        17 minutes ago      108MB
mysql               latest              8d65ec712c69        33 hours ago        445MB
php                 5.6-fpm             b755db32196e        2 weeks ago         368MB
rabbitmq            latest              b17bd9d70e8b        5 weeks ago         127MB
nginx               stable              1b155f07a3fa        5 weeks ago         108MB

и список контейнеров

docker ps -a

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                                                                             NAMES
9f38d5f7066f        rabbitmq            "docker-entrypoint..."   4 minutes ago       Up 4 minutes               4369/tcp, 0.0.0.0:5672->5672/tcp, 5671/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp   erentpay_rabbitmq_1
d598eea13e0e        erentpay_nginx      "docker-entrypoint..."   4 minutes ago       Up 4 minutes               0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp                                          erentpay_nginx_1
5103d20d5489        erentpay_db         "docker-entrypoint..."   4 minutes ago       Exited (1) 4 minutes ago                                                                                     erentpay_db_1
0ae789206b30        erentpay_php        "docker-entrypoint..."   4 minutes ago       Up 4 minutes               9000/tcp                                                                          erentpay_php_1

Пожалуйста, может кто-нибудь мне помочь? Благодаря

1 ответ

hichamx ответил: 30 марта 2018 в 07:58

Вы можете добавить mkdir /etc/mysql/mysql.conf.d в свой Dockerfile, чтобы он выглядел следующим образом:

FROM mysql:latestCOPY my.cnf /etc/mysql/my.cnf
RUN mkdir /etc/mysql/mysql.conf.d
RUN rm -rf /var/lib/apt/lists/*