@docker_ru

Страница 133 из 1375
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
тнн Itjunky
10.04.2017
19:21:20
Alexandr
10.04.2017
19:21:37
А зачем он?
Ну ты же пытаешься запустить скрипт

Не факт что в изначальном обращение есть sh

тнн Itjunky
10.04.2017
19:22:32
Ну ты же пытаешься запустить скрипт
Ну скрипт то запускается и в его шапке #!/bin/bash

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

тнн Itjunky
10.04.2017
19:23:26
Alexandr
10.04.2017
19:24:12
Как? В каждой строке скрипта?
Нет , через EOF например

Но вначале попробуй bin/bash

тнн Itjunky
10.04.2017
19:24:45
Но вначале попробуй bin/bash
Уже, ничего не изменилось, как и ожидалось

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
http://unix.stackexchange.com/questions/300129/how-do-i-use-cat-eof
Так это обычный вывод текста в файл. А не результата выполнения команд

тнн 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
А в dockerfile почему такие манипуляции не сделаешь?
Что именно? Мускуль не инициализирую?

Alexandr
10.04.2017
19:31:22
Что именно? Мускуль не инициализирую?
Выставление прав и так далее

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

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

Alexandr
10.04.2017
19:32:40
Например, потому что на момент отработки докерфайла ещё нет каталога с базой, прокинутого в докер
Так если права выставить на директорию и запускать под mysql user, ничего более не понадобится

тнн 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
Пошло обоссывание помощников

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
если у тебя нет в выводе ls и ты не шаманил с stdout/stderr - значит он у тебя просто не вызывается
не шаманил же. и как одна команда в скрипте вызывается, а другая нет?

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 не верные стоят

какой еще sudo? Что тебе мешает выставить настройки для директории в dockerfile и потом создать volume?
Ты же сказал запускать от мускуля, как это сделать? Всё же от рута там отрабатывает

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 целиком без перенаправлений

иначе тут только угадывать можно

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
ну никакой побольшому счету, просто немного сбивает

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 никакого отношение к контейнеру с друпалом не имеет

у тебя есть контейнер с мускулом

Страница 133 из 1375