Несколько х в год 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]: Описана последняя ситуация с этого момента, база данных не инициализация, отсутствие сообщений, заметок или предупреждений из сценария точки входа.
С уважением, Колин