Подключите нашего Telegram-бота для уведомлений о новых проектах

Заказ закрыт
Маршрутизация data-приложений в docker-compose

Разместить заказ
f
Заказчик
Отзывы фрилансеров: + 1 - 0
Зарегистрирован на сайте 10 месяцев
Бюджет: по договоренности
Структурированное описание сделал в github
gist.github.com/fkholkin0...

---
Копия текста:
--- 

Контекст:
Использую python фреймворки (streamlit, gradio, panel) для разработки data-приложений, упакованных в docker image.
1 приложение = 1 микро-сервис =  1 docker-контейнер

Деплою на сервер через CI/CD в Gitlab, использую Docker-compose.

**Процесс деплоя**: 
Git push to master -> `docker compose down --rmi=all` -> `docker compose  up --detach`

При старте CI/CD чистятся старые контейнеры, формируются новые и развертываются на сервере. 
Web-сервер (Nginx) завел отдельным контейнером, в общем Compose.

Проблемы:
1. **SSL-сертификаты**. Не удалось настроить Nginx нужным мне образом, чтобы использовать бесплатные сертификаты Let's Encrypt. Пробовал использовать Caddy – сертификаты ок, маршрутизация не ок, рушит сокеты приложений -> функциональность пропадает.
   
2. **Автоматизация маршрутизации**. Мне нужна упращенная процедура развертки приложений , с настройками в Docker-compose. По гайдам из интернета сделал костылей с переменными окружения, файлами конфигурации, Dockerfile для Nginx.

### **Задача**
Произвести настройки web-сервера ( Nginx или Caddy )  и доработать docker-compose ( networks, environment ) для корректной работы SSL-сертификатов, и автоматической маршрутизации приложений. 

### Необходимо
- Автоматическая актуализация сертификатов web-сервером
- Корректная настройка `depends_on` в docker-compose между контейнерами
- Использование переменных docker-compose для определения поддомена или страницы приложения  ( маршрутизация )
- Привязать домен к серверу, настроить поддомены ( их последующее развитие )

### Критерии успешного решения задачи
1. При добавлении нового сервиса в Docker-compose по шаблону, после git push увижу свое приложение на сервере, по заданному в переменных адресу (странице или поддомену).
   
2. HTTP -> HTTPS для всех моих приложений
3. Конфигурации и настройки web-серера находятся в контейнере ( без хардкока в сервер). Настроен порядок запуска контейенров, или выставлена последовательность по network
4. Сертификаты Let's Encript запрашиваются только при первом запуске или при истечении срока их действия. Сертификаты НЕ запрашиваются при каждой сборке CI/CD.

### ИКР
Web-сервер и docker-compose, которые работает "бесшовно". Настройки маршуртизации задаются в контейнерах через переменные или ярлыки.

```docker-compose
...
st_rtime:  # -> datawarrior.ru/realtime
    build:
      context: .
      dockerfile: ./st_app/app.Dockerfile
      args:
        SOURCE_DIR: ./st_app
        ROUTING_FILE: app_pages/demo/realtime
        CI_REGISTRY_IMAGE: ${CI_REGISTRY_IMAGE}
        BASE_URL_PATH: realtime
    labels:
    – "caddy=datawarrior.ru"
    – "caddy.handle_path=/realtime"
    – "caddy.handle_path.reverse_proxy={{upstreams 1515}}"
    environment:
      – PORT_TO_USE=1515
    networks:
      – caddy
    depends_on:
      – base_streamlit_app
    restart: always
    
st_apps:  # -> apps.datawarrior.ru
    build:
      context: .
      dockerfile: ./st_app/app.Dockerfile
      args:
        SOURCE_DIR: ./st_app
        ROUTING_FILE: main_page
        CI_REGISTRY_IMAGE: ${CI_REGISTRY_IMAGE}
        BASE_URL_PATH: apps
    labels:
    – "caddy=datawarrior.ru"
    – "caddy.subdomain=apps"
    – "caddy.handle_path.reverse_proxy={{upstreams 5599}}"
    environment:
      – PORT_TO_USE=5599
    networks:
      – caddy
    depends_on:
      – base_streamlit_app
    restart: always
...
```
Напишите пожалуйста бюджет и сроки реализации.
Разделы:
Опубликован:
24.04.2025 | 10:59 [последние изменения: 24.04.2025 | 11:09]
Заказ находится в архиве
Откликнуться Посмотреть другие заказы

Теги: нужен программист, резюме программиста, требуется программист, резюме веб программиста

Наши партнеры
Сведения об ООО «Ваан» внесены в реестр аккредитованных организаций, осуществляющих деятельность в области информационных технологий. ООО «Ваан» осуществляет деятельность, связанную с использованием информационных технологий, по разработке компьютерного программного обеспечения, предоставлению доступа к программе для ЭВМ и является правообладателем программы для ЭВМ «Платформа FL.ru (версия 2.0)».