Size: a a a

RU.Docker — Официальное Русское Сообщество

2019 April 03

AG

Artur Gafurov in RU.Docker — Официальное Русское Сообщество
Всем привет, только начал изучать докер, есть вопрос:

Если БД на проде работает, и туда все данные закидываются и я захочу к примеру перенести приложение на другой сервер, файлы хранятся под системой контроля версии git. Мне нужно в git данные БД комитить или нет?
источник

AG

Artur Gafurov in RU.Docker — Официальное Русское Сообщество
Просто докер же все данные БД хранит в папке приложения, вот этот момент непонятен мне пока.
источник

BQ

Bumin Qaghan in RU.Docker — Официальное Русское Сообщество
Artur Gafurov
Всем привет, только начал изучать докер, есть вопрос:

Если БД на проде работает, и туда все данные закидываются и я захочу к примеру перенести приложение на другой сервер, файлы хранятся под системой контроля версии git. Мне нужно в git данные БД комитить или нет?
БД в гите не храни, по дефолту все данные контейнера стираются, поэтому нужен volume. Если он смонтирован в папку проекта, то исключи его через .gitignore
При переносе проекта копируешь тот волюм на новую машину в то же место (в папке проекта)
источник

AG

Artur Gafurov in RU.Docker — Официальное Русское Сообщество
Bumin Qaghan
БД в гите не храни, по дефолту все данные контейнера стираются, поэтому нужен volume. Если он смонтирован в папку проекта, то исключи его через .gitignore
При переносе проекта копируешь тот волюм на новую машину в то же место (в папке проекта)
Благодарю, думал об этом, просто не знал, делают ли так, я конечно же не храню важные данные в git`е - это глупо, просто запутался)

Тогда так и сделаю.
источник

C

CMy3u🐈 in RU.Docker — Официальное Русское Сообщество
version: '3.7'
services:
 node1:
   image: base:image
   volumes:
     - "./test:/test"
     working_dir: /test
 node2:
   image: base:image2
   volumes:
     - "./:/mnt"
   depends_on:
     - node1
   working_dir: /mnt
   stdin_open: true
источник

C

CMy3u🐈 in RU.Docker — Официальное Русское Сообщество
Вопрос почему файлы из директории test не монтируются?
источник

C

CMy3u🐈 in RU.Docker — Официальное Русское Сообщество
Т.е. на хосте в директории test есть файлы, я монтирую в контейнер, но там файлы не отображаются
источник

A

AstraSerg in RU.Docker — Официальное Русское Сообщество
CMy3u🐈
Т.е. на хосте в директории test есть файлы, я монтирую в контейнер, но там файлы не отображаются
Покажите
find .
в директории с докеркомпоз файлом, если не секрет.
источник

EK

Evgeniy Kuvshinov in RU.Docker — Официальное Русское Сообщество
а как ты проверил что они не смонтировались?
источник

C

CMy3u🐈 in RU.Docker — Официальное Русское Сообщество
Ну вообщето они смонтировались, смотрел через inspect
источник

C

CMy3u🐈 in RU.Docker — Официальное Русское Сообщество
Но файлов там почему то нет
источник
2019 April 04

D🐈

Dan 🐈 Capybara in RU.Docker — Официальное Русское Сообщество
Итак. Есть контейнер с mariadb. Два волюма: собственно папка с базой, и папка для апдейтов.
В докерфайле entrypoint'ом указан баш-скрипт, принимающий параметром cmd — mysqld. В скрипте, соответственно, есть некоторая магия для инициализации db, и прочего мейнтейна.
Однако, там прописано основное условие — если if [ ! - "/var/lib/mysql" ]; then и так далее. И всё работает, если это первый запуск: база создаётся, все условия отрабатывают. Подключение через сокет, все дела.

А мне надо бы сделать вот что: если я запускаю контейнер, и вдруг в папке с обновлениями что-то есть, то прежде чем запускать сервис, надо бы импортировать эти записи в базу. Условия прописаны, всё срабатывает, но я не понимаю напрочь, почему он не хочет соединяться с сокетом. 2002 ошибка и всё тут. Ткните меня пожалуйста. Возможно, проблема не сколько в докере, сколько в баше или env, но я перепроверил все возможные вариации — к сокету не цепляет.

p.s. гугл вежливо и тактично молчит, потому что такого как делаю я — мало кто додумается делать. и предлагает перезагрузить сервис mysqld, тогда всё будет хорошо. Но...
источник

D🐈

Dan 🐈 Capybara in RU.Docker — Официальное Русское Сообщество
Это не вопрос, это я хвастаюсь :)
источник

MA

Maxim Avramenko in RU.Docker — Официальное Русское Сообщество
Dan 🐈 Capybara
Итак. Есть контейнер с mariadb. Два волюма: собственно папка с базой, и папка для апдейтов.
В докерфайле entrypoint'ом указан баш-скрипт, принимающий параметром cmd — mysqld. В скрипте, соответственно, есть некоторая магия для инициализации db, и прочего мейнтейна.
Однако, там прописано основное условие — если if [ ! - "/var/lib/mysql" ]; then и так далее. И всё работает, если это первый запуск: база создаётся, все условия отрабатывают. Подключение через сокет, все дела.

А мне надо бы сделать вот что: если я запускаю контейнер, и вдруг в папке с обновлениями что-то есть, то прежде чем запускать сервис, надо бы импортировать эти записи в базу. Условия прописаны, всё срабатывает, но я не понимаю напрочь, почему он не хочет соединяться с сокетом. 2002 ошибка и всё тут. Ткните меня пожалуйста. Возможно, проблема не сколько в докере, сколько в баше или env, но я перепроверил все возможные вариации — к сокету не цепляет.

p.s. гугл вежливо и тактично молчит, потому что такого как делаю я — мало кто додумается делать. и предлагает перезагрузить сервис mysqld, тогда всё будет хорошо. Но...
А что за директория такая с обновлениями? Что это за обновления?
источник

D🐈

Dan 🐈 Capybara in RU.Docker — Официальное Русское Сообщество
Maxim Avramenko
А что за директория такая с обновлениями? Что это за обновления?
Патчи для базы. Набор sql файлов со всякими ALTER TABLE :)
источник

MA

Maxim Avramenko in RU.Docker — Официальное Русское Сообщество
Dan 🐈 Capybara
Патчи для базы. Набор sql файлов со всякими ALTER TABLE :)
А разве это не должно применяться к работающей бд?
источник

m

manefesto in RU.Docker — Официальное Русское Сообщество
нет
источник

m

manefesto in RU.Docker — Официальное Русское Сообщество
это по факту initdb
источник

D🐈

Dan 🐈 Capybara in RU.Docker — Официальное Русское Сообщество
Maxim Avramenko
А разве это не должно применяться к работающей бд?
Не понимаю вопроса
источник

D🐈

Dan 🐈 Capybara in RU.Docker — Официальное Русское Сообщество
Собственно, проблему уже обнаружил, внимательность — наше всё. В баш-скрипте была неправильная последовательность. Сначала вызов, а потом определение переменной сокета :)
источник