1. Подготовка веб-приложения к публикации

 

Рассмотрим пример публикации учебного сайта университета на сервере.

 

Предположим, что приложение разработано на ASP.NET Core.

 

Команда сборки приложения:

 

dotnet publish -c Release -o ./publish

 

Объяснение:

 

dotnet publish — подготавливает приложение к публикации.

-c Release — использует конфигурацию выпуска.

-o ./publish — сохраняет подготовленные файлы в папку publish.

 

После сборки необходимо выполнить следующие действия:

 

1) Разместить файлы приложения на сервере.

2) Настроить производственное окружение.

3) Подключить доменное имя.

4) Настроить HTTPS с TLS-сертификатом.

5) Проверить работу сайта в браузере.

 

Пример адреса опубликованного сайта:

 

https://university.example

 

Результат:

 

После правильной настройки сервера и домена пользователи смогут открывать университетский сайт через браузер.

 

Важно:

 

Команда dotnet publish только подготавливает файлы. Для полноценной публикации дополнительно необходимы хостинг, настройка сервера, DNS и HTTPS.

 

 

2. Автоматическая проверка приложения с помощью CI

 

Рассмотрим пример автоматического запуска сборки и тестов после изменения исходного кода.

 

Для демонстрации используется GitHub Actions.

 

Файл .github/workflows/build.yml:

 

name: Build and Test

 

on:

  push:

 

jobs:

  build:

    runs-on: ubuntu-latest

 

    steps:

      - name: Get source code

        uses: actions/checkout@v4

 

      - name: Install .NET

        uses: actions/setup-dotnet@v4

        with:

          dotnet-version: '8.0.x'

 

      - name: Build application

        run: dotnet build

 

      - name: Run tests

        run: dotnet test --no-restore

 

Объяснение:

 

on: push — запускает процесс при отправке изменений в репозиторий.

jobs — описывает задания автоматизации.

runs-on — определяет среду выполнения.

actions/checkout — получает исходный код.

actions/setup-dotnet — устанавливает .NET SDK.

dotnet build — собирает приложение.

dotnet test — запускает автоматизированные тесты.

 

Результат:

 

После отправки изменений GitHub Actions автоматически собирает проект и выполняет тесты.

 

Если сборка или тестирование завершаются ошибкой, процесс получает статус неуспешного выполнения.

 

Этот пример показывает непрерывную интеграцию (CI). Для непрерывной доставки (CD) потребуется дополнительно настроить публикацию проверенной версии.

 

 

3. Контейнеризация веб-приложения с помощью Docker

 

Рассмотрим пример упаковки простого статического сайта в Docker-контейнер.

 

Структура проекта:

 

website/

    index.html

    Dockerfile

 

Файл index.html:

 

<!DOCTYPE html>

<html lang="ru">

<head>

    <meta charset="UTF-8">

    <title>Учебный сайт</title>

</head>

<body>

    <h1>Добро пожаловать!</h1>

    <p>Сайт работает в Docker-контейнере.</p>

</body>

</html>

 

Файл Dockerfile:

 

FROM nginx:alpine

 

COPY index.html /usr/share/nginx/html/index.html

 

EXPOSE 80

 

Команда создания образа:

 

docker build -t university-site .

 

Команда запуска контейнера:

 

docker run -d -p 8080:80 university-site

 

Объяснение:

 

FROM — указывает базовый образ.

nginx:alpine — облегчённый образ веб-сервера Nginx.

COPY — копирует HTML-файл внутрь образа.

EXPOSE 80 — документирует порт, используемый приложением.

docker build — создаёт Docker-образ.

docker run — запускает контейнер.

-p 8080:80 — связывает порт 8080 компьютера с портом 80 контейнера.

 

Результат:

 

После запуска контейнера сайт доступен по адресу:

 

http://localhost:8080

 

На странице отображается сообщение:

 

Добро пожаловать!

Сайт работает в Docker-контейнере.

 

Для выполнения примера необходимо установить Docker.