D'`N_]!7ZYkFzyTTvQQP*M.-n+lZFh~fB0cbQP+N)]rwvunm3Tjinmle+ibJfe^$
С другой оси
D'`N_]!7ZYkFzyTTvQQP*M.-n+lZFh~fB0cbQP+N)]rwvunm3Tjinmle+ibJfe^$
по сети
JBáruch
новый образ, новый контейнер
Alex
в контейнере файлы менять не надо
Alex
если они не volume
Vsevolod
Можно поставить sshd, настроить ключи и коннектиться. Либо docker exec -it <container_name> /bin/bash
JBáruch
никакие файлы в существующем контейнере не менять
D'`N_]!7ZYkFzyTTvQQP*M.-n+lZFh~fB0cbQP+N)]rwvunm3Tjinmle+ibJfe^$
А как правильно сделать?
Alex
докер нужно понять и принять или отказаться )
Vsevolod
Человек спрашивает. Надо ответить. И это не всегда плохо. Например, чтобы дать доступ только к контейнеру.
Alex
А как правильно сделать?
пересобрать образ и залить новый
Леннарт Zh 🕊
Барух is typing! Страсти-то какие!
JBáruch
и не говори, сам в шоке
D'`N_]!7ZYkFzyTTvQQP*M.-n+lZFh~fB0cbQP+N)]rwvunm3Tjinmle+ibJfe^$
а даьт в контенере доступ к папке вне контенера?
Alex
стоп
Alex
давай начнем с того
Alex
какой кейс ты пытаешься решить?
Alex
ты хочешь код проекта обновлять?
Alex
или ты спрашиваешь как storage (место для заливки файлов например) подцепить?
Леннарт Zh 🕊
и не говори, сам в шоке
У меня мужик один знакомый есть, я его 25 лет знал как МихалБорисыча, а потом пробил по базе - он Моисей Борухович 00
D'`N_]!7ZYkFzyTTvQQP*M.-n+lZFh~fB0cbQP+N)]rwvunm3Tjinmle+ibJfe^$
я хочу развернуть сервер apache2 с php5 и mysql чтобы установить yii2
Vsevolod
Мы используем капистрано в docker контейнере. Для этого необходимо установить sshd. Не тру?
Леннарт Zh 🕊
Отличный дядя, кстати - совок и антисемит в хороших смыслах этих слов
D'`N_]!7ZYkFzyTTvQQP*M.-n+lZFh~fB0cbQP+N)]rwvunm3Tjinmle+ibJfe^$
у меня проблема только с файлами yii2
Alex
я хочу развернуть сервер apache2 с php5 и mysql чтобы установить yii2
Берешь docker-compose и собираешь из нескольких контейнеров
Alex
Кстати apache не нужен, бери nginx/phpfpm
Alex
Мы используем капистрано в docker контейнере. Для этого необходимо установить sshd. Не тру?
А зачем капистрано + докер? мне казалось что капистрано там уже не нужен не?
Леннарт Zh 🕊
Ребят, а кто в винде уже реально пользуется ДОЛГОЖИВУЩИМИ контейнерами?
Alex
он же для недокерных деплоев
Леннарт Zh 🕊
"завместо" chocolatey
Vsevolod
Ну капистрано изначально использовалс в проекте. Расскажите как правильно деплоить rails приложение тогда в контейнер.
Леннарт Zh 🕊
У меня много сервисов, ОДИН сервер железный и никаких требований по безопасности (govcloud)
Леннарт Zh 🕊
дайте бесплатный совет - в какую сторону гуглитьб
Alex
Ну капистрано изначально использовалс в проекте. Расскажите как правильно деплоить rails приложение тогда в контейнер.
предположу что в entrypoint просто перед запуском засунуть запуск миграций, а деплоить как и все остальные контейнеры.
Alex
Тут сильно от внутренней инфраструктуры зависит имхо.
Alex
если у вас постгрес то миграции будут в транзакции прогоняться.
Vsevolod
предположу что в entrypoint просто перед запуском засунуть запуск миграций, а деплоить как и все остальные контейнеры.
Я понял о чем вы. А есть возможность при этом сделать zero downtime деплой, откат на предыдущую версию? Мне кажется необходимо заморочиться. Либо использвать существующие наработки с докером. Вот и вопрос - есть ли такие?
Alex
Для zero downtime старая кодовая база должна поддерживать новую схему базы
Alex
иначе вам все равно придется вырубить сразу все контейнеры которые работали на старой схеме
Alex
Откат имхо вручную надо делать.
Alexander
Для zero downtime старая кодовая база должна поддерживать новую схему базы
Самое правильное решение! Есть куча практик по этой теме. Таких как - Нельзя удалять/переименовыввать поля в базе - Только добавление данных, никакого удаления - ...и еще куча и куча всякого...
Alexander
тогда и откаты (что-то пошлое слово какое-то) не надо будет делать. Просто сменил версию образа и перезапустил контейнер Для 0-downtime в таких инструментах как Kubernetes предусмотрены специальные абстракции Deployment Меняется версия образа и он сам сначала поднимает новый контейнер, роутит туда запросы и опускает старый. Очень удобно!
D'`N_]!7ZYkFzyTTvQQP*M.-n+lZFh~fB0cbQP+N)]rwvunm3Tjinmle+ibJfe^$
хорошо.. а как тогда примонтировать папку из оси в контейнер, чтобы изменения в файлах вне контейнера были видны внутри контейнера?
Alex
ты хочешь локально разрабатывать используя докер да?
Pasha Chalyk
Всем привет. Подскажите, пожалуйста, как мне сделать изнутри контейнера доступным соседний контейнер через докерхост?
D'`N_]!7ZYkFzyTTvQQP*M.-n+lZFh~fB0cbQP+N)]rwvunm3Tjinmle+ibJfe^$
Да, именно так
D'`N_]!7ZYkFzyTTvQQP*M.-n+lZFh~fB0cbQP+N)]rwvunm3Tjinmle+ibJfe^$
А чего ты хочешь добиться?
D'`N_]!7ZYkFzyTTvQQP*M.-n+lZFh~fB0cbQP+N)]rwvunm3Tjinmle+ibJfe^$
ты хочешь локально разрабатывать используя докер да?
Alex
Да, именно так
А почему вместо того чтобы задавать вопросы как сдлеать неправильно не спросить "ребят как лучше решить мой кейс?"
Alex
Особенно если ты новичок в технологии?
Alex
берешь docker-compose и папку с проектом монтируешь как volume внутри контейнера
Alex
Только не говори мне что ты апач+php+mysql в один контейнер засунул.
D'`N_]!7ZYkFzyTTvQQP*M.-n+lZFh~fB0cbQP+N)]rwvunm3Tjinmle+ibJfe^$
:D
D'`N_]!7ZYkFzyTTvQQP*M.-n+lZFh~fB0cbQP+N)]rwvunm3Tjinmle+ibJfe^$
Именно
Alex
Именно
Берешь докер композ и делаешь так чтобы каждый контейнер решал одну задачу
Alex
скорее всего у тебя будет контейнер с mysql, контейнер с php-fpm и контейнер с nginx
Alex
все это делается через docker-compose
Alex
Перед этим надо будет смириться что ты написал велосипед и его надо выкинуть.
D'`N_]!7ZYkFzyTTvQQP*M.-n+lZFh~fB0cbQP+N)]rwvunm3Tjinmle+ibJfe^$
спасибо, уже читаю про compose :)
Alex
Собрать docker-compose под php очень легко кстати.
Евгений
Самое правильное решение! Есть куча практик по этой теме. Таких как - Нельзя удалять/переименовыввать поля в базе - Только добавление данных, никакого удаления - ...и еще куча и куча всякого...
А когда он миграции делает? Можно ли его вначале поднять, промигрировать, затем сделать из него "стейджинг" - то есть пустить туда 1-5% трафика (включая свой) и посмотреть как оно работает. И если ок, то начатт плавно заменять старые контейнеры на новые?
Alexander
Кто миграции делает? Ваше приложение? При старте. По поводу трафика - решайте это через LoadBalancer
Alexander
встроенные в Kubernetes вроде не позволяют делить трафик на части, но Вы всегда можете сделать свой сервис и направлять трафик через него, воспользовавшись тем же HAProxy или Nginx
Alexander
как отдельным сервисом внутри инфраструктуры
Евгений
Кто миграции делает? Ваше приложение? При старте. По поводу трафика - решайте это через LoadBalancer
Да, но при этом я не хочу, чтобы пока оно делает миграции на него шел трафик. Или это должен "увидеть" LB, что порт лежит? Как решаеся вопрос, что последующий запускаемые контейнеры не пытались делать миграции еще раз? Понятно, что нормальная система миграций это не допустит, но потеря времени на проверку тож не нужна.
Евгений
И лишние ошибки при запуске
Alex
на кого шел траффик? зачем пускать на контейнер траффик если он выполняет миграции?
Alexander
Я так понял, Евгению нужен типа "стейджинг"?
Евгений
Не зачем, но пока не очень понимаю как его отсечь. Да я могу в nginx сказать, что вот этот сервис лежит. Но это какой-то "заказ солнца вручную"
Alex
у вас балансировщика с hearthbeat нету?
Alexander
стоп-стоп... в тоже же HAProxy есть check
Евгений
И стейджинг и запуск контейнерва в режиме миграции - то есть первй запуск новой версии контейнера
Евгений
Я и пишу - LB проверяет. что контейнер пока не готов отвечать по порту и не льет на него трафик.
Alexander
все балансеры должны это поддерживать же...
Евгений
Но это врде как костыль