
Andrey
10.04.2017
19:19:04
Он сам с ума

тнн Itjunky
10.04.2017
19:19:10
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

Andrey
10.04.2017
19:19:11
Сходит
Почерк вагрантолога

Google

Alexandr
10.04.2017
19:21:09

тнн Itjunky
10.04.2017
19:21:20

Alexandr
10.04.2017
19:21:37
Не факт что в изначальном обращение есть sh

тнн Itjunky
10.04.2017
19:22:32

Alexandr
10.04.2017
19:22:51
А зачем он?
А вообще было бы отличной идеей запись в файл в самом скрипте указать

тнн Itjunky
10.04.2017
19:23:26

Alexandr
10.04.2017
19:24:12
Но вначале попробуй bin/bash

тнн Itjunky
10.04.2017
19:24:45

Alexandr
10.04.2017
19:25:26

тнн Itjunky
10.04.2017
19:25:38
есть только d.log

Google

тнн Itjunky
10.04.2017
19:26:00
и там даже нет результата команды ls
Вообще очередная шляпа какая-то у докера с stdin/stderr, наряду с файлами в вольюмах

Alexandr
10.04.2017
19:27:58
http://unix.stackexchange.com/questions/300129/how-do-i-use-cat-eof

Andrey
10.04.2017
19:28:18
Ставлю на пять дней

тнн Itjunky
10.04.2017
19:28:46

Alexandr
10.04.2017
19:28:52

тнн Itjunky
10.04.2017
19:29:16
Скрипт на скрине справа
Но уже претерпел некоторые изменения, в прочем на результате они никак не сказались

Andrey
10.04.2017
19:29:55
В плане?
За пять дней либо кого достанет своим нытьем и тот ему сделает
Либо бросит затею

Alexandr
10.04.2017
19:30:09
А в dockerfile почему такие манипуляции не сделаешь?

ko4
10.04.2017
19:30:10
пароль бы ещё замазать

тнн Itjunky
10.04.2017
19:30:11
В плане?
не обращай внимания на тролля, сам не шарит, только троллить и умеет

Alexandr
10.04.2017
19:30:44

тнн Itjunky
10.04.2017
19:31:03

Alexandr
10.04.2017
19:31:22
Ты же ведь настаиваешь один контейнер, зачем это все нести в compose?

Google

тнн Itjunky
10.04.2017
19:31:48
Например, потому что на момент отработки докерфайла ещё нет каталога с базой, прокинутого в докер

Alexandr
10.04.2017
19:32:40

тнн Itjunky
10.04.2017
19:43:04
через sudo?
Уже пытался, толку не дало

Fike
10.04.2017
19:43:30

тнн Itjunky
10.04.2017
19:44:06

Andrey
10.04.2017
19:44:42
Лол

Fike
10.04.2017
19:44:43
я там выше писал уже. не работает - дебажь и построчно выясняй, где именно проблема. иначе не бывает.

Andrey
10.04.2017
19:44:55
Пошло обоссывание помощников

тнн Itjunky
10.04.2017
19:44:58

Fike
10.04.2017
19:45:00
и это, в общем, по делу на самом деле. это основы линукса, а не докер
да нет же

тнн Itjunky
10.04.2017
19:45:23
Подскажи тогда как правильно дебажить этот момент

Fike
10.04.2017
19:45:56
если у тебя нет в выводе ls и ты не шаманил с stdout/stderr - значит он у тебя просто не вызывается

тнн Itjunky
10.04.2017
19:46:34

Fike
10.04.2017
19:46:48
поэтому тупо напихай echo во все ветки if else, чтобы понимать, что у тебя выполняется, либо -x включи
ну, дружище, скрипт твой, не могу сказать

тнн Itjunky
10.04.2017
19:47:34

Fike
10.04.2017
19:49:46
у тебя стоит -e, как я предлагал выше. это флаг баша "закончи работу на первой ошибке". если у тебя по каким-то причинам не прошел первый chown, то умрет весь скрипт.
поэтому я повторно спрошу - от какого пользователя все выполняется?

Google

Fike
10.04.2017
19:50:10
существует ли пользователь mysql с группой mysql?

тнн Itjunky
10.04.2017
19:52:01
В докере, конечно существует.

Alexandr
10.04.2017
19:52:46
через sudo?
какой еще sudo? Что тебе мешает выставить настройки для директории в dockerfile и потом создать volume?

тнн Itjunky
10.04.2017
19:52:54
Более того, после всего этого, в логах я вижу, что выполнялся и запуск демона мускуля, который выругался, что права на mysql.index не верные стоят

Alexandr
10.04.2017
19:54:22

Fike
10.04.2017
19:54:27
а что в выводе-то

Alexandr
10.04.2017
19:54:33
почему тогда на права ругается

тнн Itjunky
10.04.2017
19:55:02

Admin
ERROR: S client not available

Fike
10.04.2017
19:55:18
короч, докерфайл и stdout целиком без перенаправлений
иначе тут только угадывать можно

Alexandr
10.04.2017
19:55:32

Fike
10.04.2017
19:55:37
и ради всего святого, не скриншотами

Alexandr
10.04.2017
19:55:52

Fike
10.04.2017
19:56:48
еще есть замечательный хак - прежде чем делать докерфайл - запустить базовое изображение и просто руками выполнить все команды, чтобы отдебажить живьем

Dmitriy
10.04.2017
19:57:18
а почему изображение, а не образ?

Anton
10.04.2017
19:57:49
Я правильно понимаю что проблема в том что во время запуска компоуза база не инициализирована?

Fike
10.04.2017
19:58:08
нет, человек хочет вручную пройти круги ада ради самообучения

Google

Anton
10.04.2017
19:58:47
знать как работают linux безусловно полезно

Dmitriy
10.04.2017
19:58:51
ну никакой побольшому счету, просто немного сбивает

тнн Itjunky
10.04.2017
19:59:25

Alexandr
10.04.2017
20:00:22
Он сразу падает же
у тебя явно идет расхождение с правами на директорию и тем кто процесс запускает. Как выше посоветовали лучше ручками все проделай

тнн Itjunky
10.04.2017
20:00:36

Anton
10.04.2017
20:01:46
скрипт должен лежать/копироваться в том же контейнере что и сам мускул, ну и соответственно запускать его сразу под пользователем mysql

тнн Itjunky
10.04.2017
20:02:16
Да, скрипт запускается в самом конце из композа

Anton
10.04.2017
20:02:21
по факту я бы просто вот сюда https://github.com/docker-library/mysql/blob/master/8.0/Dockerfile добавил добавил COPY mysuperscript
нет
компоуз это уэе работа в проде
а скрипт это этап перед компоузом
его надо рручками либо чем то другим запускать

тнн Itjunky
10.04.2017
20:02:58

Anton
10.04.2017
20:03:25
не надо пытаться его интегрировать в компоуз. хотя я делал так , запускал такой скрипт и по окончании делал touch migrated
и потом проерял каждый раз - если такого файла нет - заново запускаю инициализацию

тнн Itjunky
10.04.2017
20:03:44
Вот же композ
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
А на скрине выше тот самый init.sh

Anton
10.04.2017
20:04:57
энет.
my.cnf никакого отношение к контейнеру с друпалом не имеет
у тебя есть контейнер с мускулом