Получать данные извне в мой контейнер Linux?

Я пытаюсь разделить базу данных и приложение PHP с помощью LXC.

В настоящее время у меня возникают некоторые проблемы с развертыванием моего кода в одном из контейнеров - я не понимаю, как это должно работать.

Моя текущая настройка - это VPS, к которому DeployHQ подключается через SSH - загружает приложение из GitHub и запускает несколько команд.

Но это решение кажется невозможным с моими контейнерами - поэтому мой вопрос в том, что мне теперь делать?

Я могу получить код на хост-машине - но как мне получить код на мой контейнер, все еще будучи уверенным, что права пользователя для гостя верны?

2
задан 9 January 2014 в 01:09

1 ответ

Самый очевидный способ - заставить LXC вести себя так же, как ваш VPS. Для этого вам может потребоваться настроить правило NAT на хосте, которое перенаправляет внешний порт на порт 22 контейнера LXC.

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2022 -j DNAT --to 10.0.3.123:22

(перенаправляет порт 2022 на eth0 в контейнер с IP 10.0.3.123 на своем порту 22).

Альтернативой является сделать это через файловую систему хоста, там у вас есть два решения:

  • Скопируйте непосредственно в /var/lib/lxc/CONTAINER/rootfs/...
  • Настройте привязку в / var / lib / lxc / CONTAINER / fstab для пути на хосте к пути в контейнере. (Например, «/ srv / site srv / site none bind, ro 0 0» установит привязку монтирования / srv / site на хосте только для чтения к узлу / srv / site в контейнере. Оба пути должны существовать до контейнера startup.

В обоих случаях вам необходимо убедиться, что владение совпадает с правами владения в вашем контейнере, так что вы, вероятно, захотите, чтобы любые обновления по этому пути на хосте делали старый добрый выбор. -R до правильных значений.

0
ответ дан 9 January 2014 в 01:09

Другие вопросы по тегам:

Похожие вопросы: