🦠
Погоди
🦠
В обоих композах одинаковые порты?
🦠
И ты их параллельно запускаешь?
Dmitriiiii
ports:
- 4000:80
на втором
ports:
- 5000:80
Dmitriiiii
ip же разные будут, хотя сеть одна
🦠
Пропиши явно hostname
Dmitriiiii
Всё понял спс, только я теперь не понимаю почему этот контейнер завершается сам когда он к базе не может подключится почему не 500ошибка на веб сервере, как себя бы повел обычный сервер, а завершается докер контейнер, и ещё, подскажите пожалуйста как можно запустить контейнер чтобы он сам не вырубался и можно было там полазить я всегда туда захожу через docker exec -it <> bash , но когда там ошибка меня выкидывает
Simak
Тебе надо зацикливать его ) по идее через какой нибудь tail -f
Simak
И будет вечно выполняться процесс
Artem
А вообще это нормально когда он отрубается, в этот момент куришь docker logs контейнера и смотришь на какой ошибке закончился лог и устраняешь.
Artem
Чтобы не вешать туда вечный процесс который не дает ему упасть и потом гадать, что из связки контейнеров тупит, если при этом все подняты.
Artem
@ITJunky ну ты конечно даешь и пофлеймить и посраться успел, только из-за того, что сам же неправильно готовишь докер, сколько раз уже писали, докер это не виртуалки и не нужно запихивать туда больше одного рабочего процесса.
Artem
1 контейнер = 1 апп / 1 сервис / 1 процесм
Artem
И заказчику можно передать так же файл компоуза
Anonymous
Artem
Притом что если запускаешь мускуль, то юзай официальный образ
Anonymous
Одного файла композа не достаточно что бы развернуть друпал уже установленный и базу туда влить
Artem
Он нормально подтягивает дампы, из маунтов
Anonymous
Anonymous
Хочу сам приготовить, не для всех приложений есть официальные образы
Artem
Для 90% и судя по твоим вопросам вряд ли ты копаешь в сторону последних 10
Anonymous
отличный ответ
Anonymous
Вряд ли он поможет мне
Artem
Нормальная практика собирать из офф образов, ну на край собирать кастомный образ из официальных, добавляя свой необходимый код, чтобы можно было передать приложении сразу образом кому надо
Anonymous
Anonymous
Конфиг не подсовывается который мне надо
Anton
Иметь один компоуз файл и несклько докерфайлов это своершенно нормальная практика
Anton
Не надо пытаться все за#уячить в один композ
Anonymous
Хочу с нуля, что бы лучше понять смысл каждой строки. Обычно при таком подходе, когда берёшь что-то готовое, половину конфига не понятно и никогда не становится понятно.
Anonymous
Anton
Anonymous
Anonymous
https://hub.docker.com/_/mysql/
Смотрю сюда тут только pull команда
Anton
Там всегда ссылка на гитхаб есть, на нем и читай
Anonymous
Вот опять, же,мускуль тут на дебиане, а мне надо на centos
Artem
Это же приложение, зачем привязываться к дистрибутиву, контейнерам нужен только порт и имя контейнера, им без разницы чем он там обслуживается, для минимализма и отсутствия лишних зависимостей вообще модно на Alpine собирать.
Anonymous
Вот я и пытался собрать сам. А мне тут предлагают готовое брать уже в который раз.
Simak
Спс, пока до этого не доюрался, мучаюсь с мускулем
Я думаю у тебя не получается, потому что ты не знаешь разницу между примонтировать папку и примонтировать раздел. Это очень большая разница. И если не ошибаюсь, если хост машина работает на центром/Федора надо подправить selinux для нормального монтирования.
Anonymous
Так всё монтируется же
Anonymous
селинукс обычно не даёт в принципе сделать что-то, а не сделать на половину =)
Anonymous
Anonymous
Вроде разделы и не монтирую. Делаю VOLUME
Simak
Раздел, это тоже папка, но докер интерпретирует это по своему
Simak
Если бы вы монтировали именно раздел, то mysql у вас бы инициализировался еще при сборке
Anton
Simak
А получается, что он инициализируется у вас, и вы этот слой перекрываете монтируемым каталогом.
Anonymous
Artem
Берешь официальный образ, копируешь оттуда etc/mysql себе на хост, правишь как нужно и потом закидываешь/маунтишь в образ
Artem
Должно работать в любом случае
Anonymous
Anonymous
а потом делаю кат конфига внутри докера, а там другое
Simak
Artem
А ты какую директорию маунтишь
Artem
?
Artem
Он уже ознакомился)
Simak
-v mysql:/var/lib/mysql так ты проиницилизируешь раздел.
-v /opt/data:/var/lib/mysql это каталог, и если ты делаешь докер файл по типу
FROM centos
RUN yum update && yum install mysql -y
CMD ["mysqld"]
Это большая разница
Simak
https://blog.amartynov.ru/docker-mysql/
Simak
Вот так тебе будет легче наверное )
Igor
Anonymous
Anonymous
Simak
Можно вопрос, ты вот объявил VOLUME в докер файле
Simak
а потом как ты создаешь контейнер?
Simak
через компис?
Anonymous
Нет, я в докер композе указал пачку вольюмов
Simak
Anonymous
Кстати, возник вопрос про VOLUME в Dockerfile. Это штука которая резервирует некий путь внутри контейнера, который потом, в композе или ключами при запуске я могу замонтировать с каталогом на хостовой системе?
Anonymous
А если не указывать его в Dockerfile, а сразу вольюмы монтировать, что изменится?
Simak
вот в этом и есть разница между монтирование папок
Simak
и монтирование разделов
Simak
и время их объявления
Simak
фишка вот в чем
Simak
что бы ты записал на этот вольюм что нибудь. Тебе надо вовремя его объявить.