Anonymous
Но уже претерпел некоторые изменения, в прочем на результате они никак не сказались
🦠
В плане?
За пять дней либо кого достанет своим нытьем и тот ему сделает
🦠
Либо бросит затею
Alexandr
ko4
пароль бы ещё замазать
Anonymous
В плане?
не обращай внимания на тролля, сам не шарит, только троллить и умеет
Anonymous
Alexandr
Alexandr
Ты же ведь настаиваешь один контейнер, зачем это все нести в compose?
Anonymous
Например, потому что на момент отработки докерфайла ещё нет каталога с базой, прокинутого в докер
Alexandr
Anonymous
через sudo?
Anonymous
Уже пытался, толку не дало
Etki
🦠
Лол
Etki
я там выше писал уже. не работает - дебажь и построчно выясняй, где именно проблема. иначе не бывает.
🦠
Пошло обоссывание помощников
Anonymous
Etki
и это, в общем, по делу на самом деле. это основы линукса, а не докер
Etki
да нет же
Anonymous
Подскажи тогда как правильно дебажить этот момент
Etki
если у тебя нет в выводе ls и ты не шаманил с stdout/stderr - значит он у тебя просто не вызывается
Anonymous
Etki
поэтому тупо напихай echo во все ветки if else, чтобы понимать, что у тебя выполняется, либо -x включи
Etki
ну, дружище, скрипт твой, не могу сказать
Anonymous
Вот как он сейчас выглядит, ни один из двух Ls не выводится
Etki
у тебя стоит -e, как я предлагал выше. это флаг баша "закончи работу на первой ошибке". если у тебя по каким-то причинам не прошел первый chown, то умрет весь скрипт.
Etki
поэтому я повторно спрошу - от какого пользователя все выполняется?
Etki
существует ли пользователь mysql с группой mysql?
Anonymous
В докере, конечно существует.
Alexandr
через sudo?
какой еще sudo? Что тебе мешает выставить настройки для директории в dockerfile и потом создать volume?
Anonymous
Более того, после всего этого, в логах я вижу, что выполнялся и запуск демона мускуля, который выругался, что права на mysql.index не верные стоят
Anonymous
Alexandr
Etki
а что в выводе-то
Alexandr
почему тогда на права ругается
Etki
короч, докерфайл и stdout целиком без перенаправлений
Etki
иначе тут только угадывать можно
Alexandr
Etki
и ради всего святого, не скриншотами
Alexandr
Etki
еще есть замечательный хак - прежде чем делать докерфайл - запустить базовое изображение и просто руками выполнить все команды, чтобы отдебажить живьем
Cin
а почему изображение, а не образ?
Anton
Я правильно понимаю что проблема в том что во время запуска компоуза база не инициализирована?
Etki
нет, человек хочет вручную пройти круги ада ради самообучения
Etki
Anton
знать как работают linux безусловно полезно
Cin
ну никакой побольшому счету, просто немного сбивает
Anonymous
Anonymous
Alexandr
Он сразу падает же
у тебя явно идет расхождение с правами на директорию и тем кто процесс запускает. Как выше посоветовали лучше ручками все проделай
Anton
скрипт должен лежать/копироваться в том же контейнере что и сам мускул, ну и соответственно запускать его сразу под пользователем mysql
Anonymous
Да, скрипт запускается в самом конце из композа
Anton
по факту я бы просто вот сюда https://github.com/docker-library/mysql/blob/master/8.0/Dockerfile добавил добавил COPY mysuperscript
Anton
нет
Anton
компоуз это уэе работа в проде
Anton
а скрипт это этап перед компоузом
Anton
его надо рручками либо чем то другим запускать
Anonymous
Anton
не надо пытаться его интегрировать в компоуз. хотя я делал так , запускал такой скрипт и по окончании делал touch migrated
Anton
и потом проерял каждый раз - если такого файла нет - заново запускаю инициализацию
Anonymous
Вот же композ
Anonymous
drupal:
build: .
ports:
- "80:80"
- "3306:3306"
volumes:
- ./config/my.cnf:/etc/my.cnf
- ./files/www/drupal:/var/www/drupal
- ./mysql-data:/var/lib/mysql
- /tmp/kziodb.sql:/kziodb.sql
working_dir: /var/www
command: sh -c "/init.sh >> /var/lib/mysql/d.log 2>&1"
restart: on-failure 1
Anonymous
А на скрине выше тот самый init.sh
Anton
энет.
Anton
my.cnf никакого отношение к контейнеру с друпалом не имеет
Anton
у тебя есть контейнер с мускулом
Anton
вот туда и копируй
Anonymous
тем не менее с my.cnf щас уже всё нормально
Anton
и там же делай init (если ему никакой код друпаловский не нужен)
Anonymous
А вот с init.sh шляпа
Anonymous
И не надо снова заводить сказочку про белого бычка и про то что одно приложение в одном контэйнере
Cin
да хоть 5
Anonymous
Я щас чисто с мускулем разбираюсь
Anonymous
И всё в одном контейнере