Щодо pyenv, то ось плюси і мінуси нашого стеку:
Мінус: ми поки не навчилися конектити IDE-шку всередину контейнера, щоб вона бачила встановлений там пітон та інші ліби.
Плюс: новому програмісту в команді достатньо виконати дві команди щоб в нього все запрацювало:
git clone ...
./redeploy.sh
Так, ми так і робимо. Гунікорн можна налаштувати так, щоб він сам рестартився коли міняється код.
Я це і мав на увазі. До речі, Docker Machine піднімає віртуалку з мінімальними характеристиками. Для збільшення потужності, сконфігоруйте, напряклад, ось так:
docker-machine create —virtualbox-cpu-count=4 —virtualbox-memory 4096 —driver virtualbox default
Чесно кажучи, його взагалі не потрібно якщо ваша машина підтримує докер. Якщо у вас віндовс — то Vagrant найлегший спосіб підняти віртуалку з ubuntu та докером. Якщо ж у вас Мак або ubuntu — то проблем немає, використовуйте тільки Докер.
В наступній частині статті я опишу як правильно запускати Vagrant та монтувати файли/директорії.
Сергій, дякую за коментар. Слушні зауваження. Docker Compose справді не варто використовувати на продакшені, адже він ніяким чином не підтримує контейнери і не піднімає їх знову, якщо вони впадуть. Також, виникають проблема, якщо залінковані контейнери повинні підніматися в певному порядку. Наприклад, спочатку потрібно підняти контейнер з базою, а потім вже апу. Докер Композ по порядку виконає ці дії, проте він не буде чекати коли всередині першого контейнера запуститься і ініціалізується база даних.
Для оркестрації контейнерів на продакшені ми використовуємо AWS Elastic Beanstalk.
Якщо в тебе є досвід роботи з докером на продакшені, поділися будь ласка!
Ми використовуємо Docker Compose лише для локальної розробки. Це найлегший спосіб. На продакшені наші контейнери оркеструє AWS Elastic Beanstalk. Поки Kubernetes не пробували.
В принципі, це відкрита тема. Якщо ти працював з Kubernetes, опиши свої враження.
Так історично склалося. Вважаєш uwsgi краще? Аргументуєш?
Вже майже всі баги пофіксили, #preply стає кращим! :)