Нужен специалист по docker
1274 UAHБюджет обсуждаемый.
Нужна следующая инфраструктура контейнеров докера, собранная в docker-compose
* Докер будет работать на сервере с 4гб ОЗУ, контейнеры должны быть с балансированы и максимально эффективно использовать ресурсы сервера.
* Все контейнера собирать на базе контейнера alpine
* Все контейнера которые будут работать с файловой системой должны работать под одним и тем же пользователем и кодом групы например 1000:1000 или app-admin:app-admin, это нужно для того что бы не возникало ошибок с доступом к файлам из разных контейнеров.
* Файлы конфига основных процессов контейнера (nginx, pph-fpm, mysql и тд...) нужно вынести наружу через volumes, что бы после изменения конфига не нужно было пересобирать контейнер.
* Синхронизовать время и локацию для всех контейнеров на Москву.
* Так же вынести из контейнеров логи
* В настройках контейнеров не должно быть полных путей, только относительные от корня папки проекта
- Контейнер с nginx, оптимизировать настройки nginx, выводить логи.
- Контейнер с php-fpm для продакшена, оптимизировать настройки php-fpm,
включить opcache, soap,
контейнер будет работать с фреймворком Laravel, нужно установить все пакеты для корректной работы этого фреймворка,
также установить пакеты для работы и xml и изображениями
выводить логи.
- Контейнер с php-fpm для дева, все по аналогии с контейнером для продакшена только выключить opcache, и настроить xdebug для отладки php. По умолчанию этот контейнер не должен включаться на продакшене. Поднятие только в ручном режиме. Выводить логи.
- Контейнер с БД mysql последняя стабильная версия. Оптимизировать настройки, выводить логи.
- Контейнер для разработки, в контейнере будут запускаться консольные скрипты, unit тесты, собираться css и js зависимости. В контейнере нужно поднять
php-cli,
пакеты для работы с mysql, xml, изображениями, xdebug, php-unit,
предустановить composer.
nodejs, npm
предустановить gulp, webpack, node-sass
- Контейнер для автоматического обновления letsencrypt сертификатов.
- (В правильности этого пункта я не уверен) Контейнер с nginx который будет проксировать контейнер letsencrypt и основной nginx.
- Контейнер с supervisor. Supervisor поднимает крон и имеет прокинутую папку через volumes для добавления быстрых конфигов для разных приложений.
(Я не уверен как правильно поднимать этот контейнер так как в нем нужно поднять окружения для корректной работы laravel, php-cli, а также nodejs)
Примерная структура
root
- docker-compose.yml
- src (в этой директории будут хранится все приложения)
- conteiner-logs (директория для логов)
- container-data - тут храним данные которые нужно сохранять когда контейнеры вырубаются, например данные mysql.
- docker-config (директория с конфигами для докер контейнеров, каждый контейнер должен быть в отдельной папке)
-- container_name
--- dockerfile
--- configs.ext
Если вы видите что какой-то из пунктов не целесообразен пожалуйста сообщите это нам.
-
126 1 0 Привіт!
Потрібно уточнити кілька моментів, але взагальному - все ок
-
136 привет,
после обсуждения, готов реализовать ваш проект, есть большой опыт работы с докером.
телеграм: @Vlad_Zolotous
почта: [email protected]
-
Supervisor и cron не нужны, для Laravel внутри контейнера их можно заменить парой строчек баш скрипта.
Логи никуда выносить не стоит, лучше писать в stdout, в докере так принято, их оттуда смогут забирать утилиты мониторинга.
Конфиги тоже лучше не выносить, теряется самодостаточность контейнера. Лучше пересобирать образ при изменении конфига, это можно делать с помощью CI/CD, и это будет гарантировать целостность образа, что на него ничего не влияет извне. Часто изменяемые настройки можно вынести в env variables.
Так же не стоит собирать внутри одного контейнера несколько компонентов, или делать контейнер общим для нескольких приложений, это противоречит философии докера. Один контейнер - один компонент одного приложения, следовательно папка src не нужна.
composer, npm, webpack лучше в кортейнер вообще не пихать, даже для разработки. Как показала практика, это неудобно. Для разработки лучше сделать пустой контейнер с php, и подмонтировать код приложения как volume, а composer и npm при разработке использовать вне докера.
-
Актуальные фриланс-проекты в категории Администрирование систем и сетей
Устранить проблему неполного импорта данных из Excel-файлов спецификаций Новой Почты в 1С:
2000 UAH
Цель: Есть обработка в 1с по загрузке спецификации Новой почти. По непонятнім причинам перестало подгружать некоторіе табличніе данніе Нужно найти причину и Устранить проблему неполного импорта данных из Excel-файлов спецификаций Новой Почты в 1С: Малый Бизнес. Текущее… Администрирование систем и сетей, Базы данных и SQL ∙ 9 часов 52 минуты назад ∙ 12 ставок |
Настройка FortinetДоброго дня! Необходимо настроить Fortinet FortiGate 40F-3G4G. Сделать удаленный доступ к ПЛК. Опыт работы. Спасибо! Администрирование систем и сетей, Настройка ПО и серверов ∙ 1 день 13 часов назад ∙ 5 ставок |
Миграция Windows Server 2016.Нужен системный администратор для настройки и миграции Windows Server 2016. Задача: 1. Провести аудит текущего Windows Server 2016. 2. Проверить роли сервера: RDP/RDS, пользователи, права доступа, сетевые настройки, firewall, backup. 3. Подготовить план миграции без потери… Администрирование систем и сетей, Настройка ПО и серверов ∙ 3 дня 11 часов назад ∙ 12 ставок |
Подключение профессиональных книжных сканеров в г. ОдессаПодключить профессиональные книжные сканеры (2 шт) в 2-х локациях в г. Одесса Выполнение сборки согласно инструкции, подключение и настройка ПО включая тестовое сканирование в файл из программы на ПК. Администрирование систем и сетей, Настройка ПО и серверов ∙ 3 дня 12 часов назад ∙ 2 ставки |
Подключение профессиональных книжных сканеров.Подключить профессиональные книжные сканеры (2 шт) в 2-х локациях в г. Киев. Выполнение сборки согласно инструкции, подключение и настройка ПО, включая тестовое сканирование в файл из программы на ПК. Администрирование систем и сетей ∙ 5 дней 3 часа назад ∙ 1 ставка |