Пример
Узнайте, как использовать Docker Compose с Skitflow
Руководство
В этом руководстве мы создадим простое приложение с использованием Docker Compose и настроим маршрутизацию трафика на доступный домен.
Шаги
- Создайте новый проект.
- Создайте новый сервис
Composeи выберите тип Compose —Docker Compose. - Сделайте форк этого репозитория: Repo.
- Выберите тип провайдера: GitHub или Git.
- Выберите репозиторий:
Stainless888/docker-compose-test. - Выберите ветку:
main. - Укажите Compose Path как
./docker-compose.ymlи сохраните.
Обновление вашего docker-compose.yml
Добавьте следующее в ваш существующий файл docker-compose.yml:
- Добавьте сеть
skitflow-networkк каждому сервису. - Добавьте метки для Traefik, чтобы сделать сервис доступным через домен.
Пример:
Изменим следующий compose-файл для работы с Skitflow:
version: "3"
services:
next-app:
build:
context: ./next-app
dockerfile: prod.Dockerfile
args:
ENV_VARIABLE: ${ENV_VARIABLE}
NEXT_PUBLIC_ENV_VARIABLE: ${NEXT_PUBLIC_ENV_VARIABLE}
restart: always
ports:
- 3000:3000
networks:
- my_network
networks:
my_network:
external: trueОбновленная версия с skitflow-network и метками Traefik:
Не устанавливайте свойство container_name для каждого сервиса — это вызовет проблемы с логами, метриками и другими функциями.
version: "3"
services:
next-app:
build:
context: ./next-app
dockerfile: prod.Dockerfile
args:
ENV_VARIABLE: ${ENV_VARIABLE}
NEXT_PUBLIC_ENV_VARIABLE: ${NEXT_PUBLIC_ENV_VARIABLE}
restart: always
ports:
- 3000
networks:
- skitflow-network
labels:
- "traefik.enable=true"
- "traefik.http.routers.<unique-name>.rule=Host(`your-domain.com`)"
- "traefik.http.routers.<unique-name>.entrypoints=websecure"
- "traefik.http.routers.<unique-name>.tls.certResolver=letsencrypt"
- "traefik.http.services.<unique-name>.loadbalancer.server.port=3000"
networks:
skitflow-network:
external: trueУбедитесь, что A-запись указывает на домен, который вы хотите использовать для вашего сервиса.
Разверните приложение, нажав «deploy», и дождитесь завершения развертывания. Затем дайте Traefik около 10 секунд для генерации сертификатов. После этого вы сможете получить доступ к приложению через установленный домен.
Советы:
- Задавайте уникальные имена для каждого маршрутизатора:
traefik.http.routers.<unique-name> - Задавайте уникальные имена для каждого сервиса:
traefik.http.services.<unique-name> - Убедитесь, что сеть подключена к
skitflow-network - Установите точку входа websecure и certificate resolver letsencrypt для генерации сертификатов.