Docker 1001 * с помощью MariaDB с Supervisor - PullRequest
0 голосов
/ 22 апреля 2020

Несколько х в год go, я пришел с идеей расширения моих Docker знаний, чтобы начать с созданием своего рода мультиплатформенным образом сервера в целях развития, с тех пор я понял, как получить Nginx и PHP -fpm работают в стабильной среде. Все это основано на изображении Debian. Теперь, так как пару одна неделя в go, я хотел бы добавить MySQL функциональность изображения. Сначала я попробовал нормальный MySQL (- сервер) изображение и после попытки исправить ошибки о том, почему он не может работать в моем образе, я перешел на использование MariaDB - я даже изменил Docker образ MySQL чтобы соответствовать моим потребностям (заменил CMD ["mysqld"] на исполняемый файл supervisord.conf, поскольку мой проект, конечно, использует несколько сервисов). Теперь я пытаюсь понять это в течение нескольких дней, но он по-прежнему не работает. На данный момент, я выбрал для использования https://hub.docker.com/_/mariadb (вторая: 10.4.12-bioni c 10,4-bioni c 10-bioni c, bioni c, 10.4.12, 10.4, 10, самое позднее) с моим изображением.

Я только что создал копию mariadb во время написания, но заменил непосредственное выполнение mysqld (работает). Когда это топи c создан, он не работал с supervisord и работает как предполагается, в настоящее время.

1008 * У меня есть docker -compose.yml, где он будет запущен, то здесь код:
version: "3"
services:
  db:
    container_name: mariadb
    image: mariadb
    build: .
    restart: on-failure
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=test123
    networks: 
      - local-network

networks:
  local-network:
    driver: bridge

Тогда, я буду исполнять docker -compose до -d или с параметром (--build)

1013 * The Dockerfile за что:. 1015 * * * 1016 После нескольких дней работы над исправлением изображения я думал, что supervisord была проблема, она не может работать из-за этого или чего-то. Ну, вот supervisord:
[supervisord]
logfile=/var/log/supervisord.log
nodaemon=true
user=root

[program:mysql]
command=/usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql
process_name=mysqld
priority=1
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stdout_events_enabled=true
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
stderr_events_enabled=true
autorestart=true
user=mysql

Что происходит дальше, когда изображение было сконструировано, mysql будет выполняться руководителем. Но, проблема в том, что я хотел использовать EntryPoint от https://github.com/mariadb-corporation/mariadb-server-docker/tree/master/10.4 - Я не очень хорошо известны в Bash, так что потребуется некоторое время на практике вещи там. Во всяком случае, docker -entrypoint не была выполнена в первый раз, база данных не будет инициализирован. Что я могу сделать, это создать собственный скрипт для его инициализации. Испытано, что и он работал, но почему я не могу просто использовать точку входа по умолчанию в качестве первого Choise

Является ли это происходит не так в какой-то момент между командами Supervisord - docker -entrypoint с mysql точек подключения или что-то?

Я действительно надеюсь, что кто-то может мне помочь.

Редактировать [26/04/2020]: Описана последняя ситуация с этого момента, база данных не инициализация, отсутствие сообщений, заметок или предупреждений из сценария точки входа.

С уважением, Колин

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...