Skitflow

Пример

Узнайте, как использовать Docker Compose с Skitflow

Руководство

В этом руководстве мы создадим простое приложение с использованием Docker Compose и настроим маршрутизацию трафика на доступный домен.

Шаги

  1. Создайте новый проект.
  2. Создайте новый сервис Compose и выберите тип Compose — Docker Compose.
  3. Сделайте форк этого репозитория: Repo.
  4. Выберите тип провайдера: GitHub или Git.
  5. Выберите репозиторий: Stainless888/docker-compose-test.
  6. Выберите ветку: main.
  7. Укажите Compose Path как ./docker-compose.yml и сохраните. Docker compose configuration

Обновление вашего docker-compose.yml

Добавьте следующее в ваш существующий файл docker-compose.yml:

  1. Добавьте сеть skitflow-network к каждому сервису.
  2. Добавьте метки для 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-запись указывает на домен, который вы хотите использовать для вашего сервиса.

home og image

Разверните приложение, нажав «deploy», и дождитесь завершения развертывания. Затем дайте Traefik около 10 секунд для генерации сертификатов. После этого вы сможете получить доступ к приложению через установленный домен.

home og image

Советы:

  1. Задавайте уникальные имена для каждого маршрутизатора: traefik.http.routers.<unique-name>
  2. Задавайте уникальные имена для каждого сервиса: traefik.http.services.<unique-name>
  3. Убедитесь, что сеть подключена к skitflow-network
  4. Установите точку входа websecure и certificate resolver letsencrypt для генерации сертификатов.

On this page