Как перенести данные на новый контейнер, без потерь?
Всем привет! Суть вопроса следующая. У меня есть контейнер с Nextcloud, данные и база данных на отдельных "хостах".
БД (postgres), хранилище подключается по nfs. Вышел официальный контейнер Nextcloud. Не получается его запустить на существующие данные и бд.
Новый контейнер запускаю направляю его на ранее используемые директории (предыдущего) и передаю при запуске образа в переменных БД.
Не пойму где ошибку искать контейнер работает, не отваливается. Захожу внутрь контейнера директории внутри него замонтированы, но APP не отвечает ?
Также проверяю внутри контейнера переменную BD база верная.
При старте контейнера не создается конфиг. Я конфиг копирую руками и правлю под нужды.
В чем может быть проблема ? В каккую сторону копать, как задебажить ошибку ?
docker logs container - ничего полезного не показывает.
Если данные хранятся вне контейнера, то при перезапуске всё должно штатно стартовать.
При перезапуске старого контейнера старт происходит корректно?
Если так, то дело скорее всего в разных потрохах нового контейнера. Поэтому надо сравнить содержимое Dockerfile, entrypoint.sh старого и нового контейнеров.
Если при перезапуске старой версии контейнера возникают проблемы, скорее всего отключен или подключен иным образом ресурс, где хранятся внешние данные контейнера.
Спасибо. При перезапуске старого контейнера, стартует. Если направляю новый контейнер на старые папки, приложение не работает. Так же если новому контейнеру подсовываю только данные, и новый не запускается.
Я не пойму какая правильная должна быть процедура ? Все отдельно, данные, бд. Но при старте официального контейнера приложение не работает.
1 В тестовом окружении новый контейнер стартует верно?
2 В описании (если есть) к новому контейнеру нет требований к другим версиям базы? Тот случай, когда контейнер содержит другую версию БД, которая не работает с данными созданными в старой версии. Такое было при переходе с postgreql 9.6 на 10.
Станислав Бодро́в, Я не совсем понимаю. Мне же только данные перенести. С учетом, что они на другом хосте, ровно так же как и бд. А официальный контейнер , когда направляю директории на мои данные вообще не запускается и не создает config.php
Мне ещё сложней. Совсем не представляю твою архитектуру, как она работает и что к чему. Поэтому могу давать лишь общие советы. Хотя дело может быть в банальных правах доступа (кстати, проверял?) или ещё чём, что лежит на поверхности прям перед носом.
Станислав Бодро́в, Спасибо за ответы. Но по идее я же могу запустить новый, официальный контейнер и передать подключение к бд и данным ? и скопировать туда данные .Должно заработать ?
Но по идее я же могу запустить новый, официальный контейнер и передать подключение к бд и данным ? и скопировать туда данные .
Docker работает без сохранения своего внутреннего состояния после перезапуска - рестартовал контейнер, и он гол как сокол в отличие от виртуалки. Это к тому, что в контейнер, по идее, не надо копировать данные. Там находится некое приложение, которое получает, обрабатывает внутри себя и отдаёт полученные данные. В твоём случае похоже на несовместимость в работе ПО нового контейнера и старой базы.
Запускал проблемный контейнер в режиме отладки? На каком шаге он падает? Как передаётся подключение к бд данных в старом контейнере?
Станислав Бодро́в, Врятли с базой. Так как я новый контейнер также как и старый подключаю к базе на другом хосте. Так же как и старый, за исключением, что под новый создаю еще одну бд для теста.
Обычно такие вещи подтягиваются в контейнер во время его сборки /инструкции COPY или ADD/, но не генерятся при старте. Если запустить старый контейнер и подключиться к нему, будет там этот файл? Аналогично с новым.
Станислав Бодро́в, Дошло до запуска. Подсунул ему старую базу. Приложение стартануло и при вводе учетоко ругается, что не может создать пользователя, таблица дублированная.