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.