Настройка постоянных данных для Carto/Postgresql в ACI

Моя основная цель – быстро и легко создать и запустить изображение, сохраняя при этом данные. Я ДУМАЮ, что ACI - лучший способ сделать это. Предположим, что это правда...

[Edit2] Похоже, что может быть более фундаментальная проблема — невозможность указать имя хоста, как в докере. Задам этот вопрос в отдельной теме. Я смог подключить хранилище.

[Исходное сообщение] Я хотел бы использовать ACI для настройки этого образа, который находится в Docker Hub. Я смог следовать простому руководству здесь но мне нужно подключить хранилище.

В частности, это образ, который я использую: https://hub.docker.com/r/sverhoeven/cartodb/

Это инструкции по настройке постоянных данных, но я не думаю, что они будут напрямую транслироваться в ACI. Это взято из раздела «Постоянные данные» на этой странице концентратора докеров.

Чтобы сохранить данные PostgreSQL, каталог данных PostGreSQL (/var/lib/postgresql) должен быть сохранен вне контейнера Cartodb Docker.…

Сделать временный контейнер

docker create --name cartodb_pgdata sverhoeven/cartodb

Сохраните каталог данных Postgresql (cartodb_pgdata) в локальный каталог. ** как мы делаем это с ACI?

docker cp cartodb_pgdata:/var/lib/postgresql $PWD/cartodb_pgdata docker rm -f cartodb_pgdata

Настройте владение cartodb_pgdata для пользователя (uid=105) в файловой системе. ** Как мы делаем это с ACI?

sudo chown -R 105.105 $PWD/cartodb_pgdata 

После этого контейнер CartoDB будет иметь базу данных, которая останется заполненной после перезапуска. Контейнер CartoDB можно запустить с помощью

docker run -d -p 80:80 -h cartodb.example.com -v $PWD/cartodb_pgdata:/var/lib/PostgreSQL sverhoeven/cartodb

Есть ряд вопросов, на которые я не могу найти решения, например:

  • Я не знаю, что использовать: emptyDir или общую папку Azure.
  • Я не знаю, как изменить права собственности
  • Я не знаю, как настроить ACI для вызова определенных команд запуска докера при запуске контейнера.

person rubenk    schedule 18.06.2018    source источник
comment
Я не получил никаких предложений для немного. Рискуя показаться, будто я дважды спрашиваю одно и то же, я загружу более точный вопрос о проблеме с указанием имени хоста. Вообще говоря, ответ от @anders помог мне начать работу с подключением файлового ресурса.   -  person rubenk    schedule 21.06.2018
comment
Я задал свой вопрос об имени хоста здесь: instan" title="Есть ли способ указать имя хоста при запуске контейнера в лазурном облаке instan"> stackoverflow.com/questions/50959411/   -  person rubenk    schedule 21.06.2018


Ответы (1)


Вы должны использовать общий файловый ресурс Azure, так как emptyDir не является постоянным хранилищем. По сути, вам нужно добавить том общего доступа к файлам в вашу группу контейнеров и смонтировать его в /var/lib/PostgreSQL. Том общей папки будет смонтирован с разрешением 777 по умолчанию.

Поскольку вы уже передали информацию о томе при создании контейнера, например. az container create через интерфейс командной строки, которые преобразуются в базовый docker run эквивалент. нет необходимости указывать команду docker.

Как подключить общую папку: https://docs.microsoft.com/en-us/azure/container-instances/container-instances-volume-azure-files

person Anders    schedule 18.06.2018
comment
Я понимаю. Мне придется заглянуть в CLI. Я еще не трогал это. Я просто использовал стандартный пошаговый рабочий процесс для настройки экземпляра. Я посмотрю на это в ближайшие пару дней и отпишусь здесь. - person rubenk; 19.06.2018
comment
Я не могу запустить контейнер с подключенным файловым ресурсом. Я получаю ошибки при запуске. * Starting PostgreSQL 9.5 database server * Ошибка: /var/lib/postgresql/9.5/main недоступен или не существует... ошибка! …. cartodb/config/environments/development.js Сервер плитки Windshaft 6.1.1 запущен 0.0.0.0:8181 PID=86 (разработка) грабли прерваны! PG::Error: не удалось подключиться к серверу: в соединении отказано Сервер работает на хосте localhost (::1) и принимает соединения TCP/IP через порт 5432? ` и т.д. и т.п. - person rubenk; 20.06.2018
comment
Я думаю, что этот раздел /var/lib/postgresql/9.5/main из-за того, что я смонтировал файловую систему - person rubenk; 20.06.2018
comment
Конечно же, когда я запускаю контейнер без монтирования файлового ресурса в этот каталог, он загружается: `* Запуск сервера базы данных PostgreSQL 9.5 ... готово. Запуск redis-сервера: redis-server. * Запуск nginx nginx ... готово. --- Восстановление пользовательских метаданных и т. д. - person rubenk; 20.06.2018
comment
Сайт загружается не полностью. Я думаю, что все еще есть проблема с не указанием имени хоста. Started GET "/" for 127.0.0.1 at 2018-06-20 01:53:59 +0000 Processing by Admin::PagesController#index as */* ... Redirected to http://localhost/login ... Started GET "/favicon.ico" for 127.0.0.1 at 2018-06-20 01:54:25 +0000 ActionController::RoutingError (No route matches [GET] "/favicon.ico"): Started POST "/sessions/create" for 127.0.0.1 at 2018-06-20 01:54:39 +0000 Started GET "/user/dev/dashboard/" for 127.0.0.1 at 2018-06-20 01:54:39 +0000 - person rubenk; 20.06.2018
comment
Просто отметив, что мои проблемы были связаны с проблемами разрешений. Я отмечу лучший ответ, но предупрежу людей, что в настоящее время у меня проблема с владением файлом. Это может быть и у других - person rubenk; 26.07.2018