---
title: "Деплой приложений в сервисе App Platform с помощью Dockerfile"
description: "Деплой любых приложений с помощью Dockerfile. Документация и инструкции по использованию и настройке облачных сервисов Timeweb Cloud."
---

# Деплой из Dockerfile

> Полный индекс документации для ИИ-агентов: [llms.txt](https://timeweb.cloud/llms.txt).

Сервис App Platform позволяет развернуть приложение с помощью Dockerfile, размещенного в репозитории. Благодаря этому вы можете деплоить любые приложения, в том числе созданные на фронтенд- и бэкенд-фреймворках, которые сервис не поддерживает напрямую.

> [!NOTE]
> У нас есть [туториал](https://timeweb.cloud/tutorials/cloud/kak-razvernut-veb-prilozhenie-pri-pomoshchi-dockerfile) с примером развертывания приложения через Dockerfile.

### Требования для запуска

-   Dockerfile может быть размещен в корне репозитория или по пути, который вы укажете в поле «Путь до директории проекта», и должен содержать необходимые инструкции для сборки и запуска и приложения. Пример докерфайла и приложения можно найти на [Гитхабе](https://github.com/timeweb-cloud-apps/app-example-docker-flask).
-   В Dockerfile должен быть прописан параметр `EXPOSE`, чтобы сервис мог определить, какой порт должен слушать веб-сервер. Если `EXPOSE` не задан, веб-сервер по умолчанию будет слушать порт контейнера `8080`.

Пример:

```shell
FROM python:3.6
MAINTAINER Name Name "mail@mail.com"
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
ENTRYPOINT ["python"]
CMD ["app.py"]
EXPOSE 3478
```

-   Необходимые переменные окружения могут быть заданы как в самом докерфайле, так в процессе запуска приложения в панели управления.

### Шаг 1. Выбор приложения

В пункте «Тип» перейдите на вкладку **Dockerfile.**

![Cd26173f E5e9 45eb 9775 D9dd0f4eced0](https://content.timeweb.com/assets/97afa156-2cc0-4510-a031-81e5518efe43.png?width=759&height=406)

### Шаг 2. Подключение репозитория

Выберите репозиторий с приложением. В корне репозитория должен быть размещен Dockerfile. 

Репозиторий можно подключить:

-   **Из вашего аккаунта GitHub, GitLab или BitBucket**. Кликните на название платформы, авторизуйтесь и выберите нужный репозиторий. Если вы уже авторизованы, панель сразу покажет доступные репозитории.

-   **По URL, указав ссылку на репозиторий, созданный на любой платформе**. Кликните «Подключите git-репозиторий по URL» (либо «Добавить аккаунт» → «Подключите git-репозиторий по URL») и укажите Git URL репозитория. Если репозиторий приватный, введите реквизиты доступа.

Подробнее о подключении репозиториев — [здесь](https://timeweb.cloud/docs/apps/connecting-repositories).

### Шаг 3. Выбор ветки и коммита

![517295ae 5c3b 46dd Bff5 48b5cde866a5](https://content.timeweb.com/assets/b3a1fbfe-8d40-4eea-851d-921c466bafb7?width=745&height=233)

Выберите ветку для деплоя.

В меню выбора ветки отображаются только 200 последних веток. При подключении репозитория GitLab, GitHub или Bitbucket также отображается ветка по умолчанию (`master`, `main` или `default`).

По умолчанию мы включаем опцию «Сборка по последнему выполненному коммиту». В этом случае App Platform выполнит деплой по самому актуальному коммиту, а в дальнейшем будет автоматически пересобирать приложение при добавлении новых коммитов в репозиторий.   
  
При необходимости вы сможете [отключить автодеплой](https://timeweb.cloud/docs/apps/upravlenie-apps-v-paneli#avtodeploj) в дальнейшем.  
  
Если вы хотите выбрать конкретный коммит вручную — отключите эту опцию.

![7690c0ce 69f7 49cb 94b3 7afdb3d18245](https://content.timeweb.com/assets/ca832158-f84b-43fb-8aa4-5f339c0fedd1?width=763&height=470)

### Шаг 4. Регион и конфигурация сервера

Приложения разворачиваются на отдельных облачных серверах. Выберите регион размещения и подходящую конфигурацию сервера. Вы можете выбрать один из готовых тарифов или настроить конфигурацию вручную на вкладке «Произвольная».

В дальнейшем, если потребуется, вы сможете перейти на более мощный тариф.

![Be4444cf 7b4f 4ddf B9db A735db4d30ab](https://content.timeweb.com/assets/14af2fb6-4726-43ce-a85d-583abc04b9b0.png?width=759&height=817)

### Шаг 5. Настройка приватной сети

![Image2](https://content.timeweb.com/assets/30e5e420-a7e0-464f-89f8-4ba5bf129361.png?width=412&height=193)

На этом этапе вы можете выбрать приватную сеть, в которую будет добавлено приложение, и указать IP-адрес, который оно будет использовать. Обратите внимание, что изменить приватную сеть после деплоя нельзя.

Если для приложения настроен приватный IP-адрес, во время повторного деплоя возможна кратковременная недоступность приложения. Это связано с тем, что перед запуском новой версии необходимо освободить занятые порты.

### Шаг 6. Настройка приложения

![81d357e7 4836 463f A737 27935c4ae48b](https://content.timeweb.com/assets/1b667380-5dfc-4ebd-a0e3-f51b2ad09ca7.png?width=638&height=402)

Сервис автоматически прочитает инструкции из докерфайла и соберет приложение в соответствии с ними.

Если Dockerfile размещен в корне репозитория, оставьте поле «Путь к директории проекта» пустым.

Если Dockerfile размещен в поддиректории, укажите путь к ней относительно корня в поле «Путь к директории проекта». Этот путь используется как расположение Dockerfile и становится контекстом сборки.

Вы также можете задать [путь проверки состояния](https://timeweb.cloud/docs/apps/healthcheck-path) и [переменные](https://timeweb.cloud/docs/apps/variables) (`ENV`), если это необходимо. Если они прописаны в докерфайле, дублировать их не требуется.

В дальнейшем у вас будет возможность [внести изменения](https://timeweb.cloud/docs/apps/upravlenie-apps-v-paneli#smena-parametrov-i-novyj-deploj) в параметры приложения, а также выбрать другую ветку и коммит, и перезапустить деплой с новыми настройками, если потребуется.

### Шаг 7. Информация о приложении

Задайте свое имя приложения, если требуется, и комментарий к нему. Это данные, которые будут отображаться в панели управления.

Также выберите, в какой проект его нужно добавить.

![5c5d10af 256b 431a 8264 02c3ec0927ac](https://content.timeweb.com/assets/a0824121-5540-461f-bfe8-1ab1c534b122?width=755&height=471)

Эти настройки также можно изменить в дальнейшем.

### Шаг 8. Деплой

Нажмите Запустить деплой. Как только процесс начнется, вы увидите лог деплоя на вкладке «Деплой». 

Как правило, он содержит всю необходимую информацию для устранения возможных ошибок. Если что-то пойдет не так, например, из-за наличия ошибок в коде, в логе будут выведены уведомления о них с уточнением причины проблемы. 

При первом развертывании проекта установка сервера может занять некоторое время. Как только процесс завершится, статус приложения обновится, а также вы увидите сообщение об этом в логе. 

![Group 1321314123](https://content.timeweb.com/assets/75a81d9c-4786-4b04-ac3a-0ecb3cfa8f45?width=1920&height=1119)

**Готово!**

IP-адрес приложения и бесплатный технический домен, привязанный к нему по умолчанию, можно найти на вкладе «Дашборд». Привязать собственный домен можно [по нашей инструкции](https://timeweb.cloud/docs/apps/upravlenie-apps-v-paneli#privyazka-domena).

Приложение будет доступно по 443 порту; порт 80 также открыт.

![Без Названия](https://content.timeweb.com/assets/7ff03d83-f737-4aa6-a7a8-1cc898693def?width=1463&height=1125)

В дальнейшем App Platform будет отслеживать обновления в репозитории и, если включен [автодеплой](https://timeweb.cloud/docs/apps/upravlenie-apps-v-paneli#avtodeploj), автоматически перезапускать проект с новыми изменениями.
