Table of contents

Размещение проектов на мощностях YSTUty

В последнее время образовательные учреждения активно развивают цифровую инфраструктуру, предоставляя студентам уникальные возможности для реализации и тестирования собственных проектов. Одним из таких предложений является возможность размещения студенческих проектов на хостинге YSTUty с использованием поддоменов. Например, есть домен ystuty.ru, студент может запросить поддомен super-app.ystuty.ru для своего проекта.

Основное условие — каждый проект должен быть обернут в Docker контейнер. Это требование обусловлено желанием стандартизировать и обезопасить среду выполнения приложений, обеспечить их изоляцию и упростить процесс развертывания. Docker контейнеры позволяют упаковать приложение со всеми его зависимостями и настройками, что делает проекты максимально переносимыми и легкими в управлении.

Вот несколько примеров Dockerfile, которые могут использоваться для создания контейнеров для различных типов проектов:

Содержимое файла Dockerfile:

# Используем базовый образ с предустановленным .NET Core FROM mcr.microsoft.com/dotnet/core/sdk:3.1 # Устанавливаем рабочую директорию WORKDIR /app # Копируем csproj и восстанавливаем зависимости COPY *.csproj ./ RUN dotnet restore # Копируем исходные коды проекта в контейнер COPY . ./ # Собираем приложение RUN dotnet publish -c Release -o out # Запускаем приложение ENTRYPOINT ["dotnet", "out/MyApp.dll"]

Содержимое файла Dockerfile:

# Задаем базовый образ FROM python:3.8-slim # Устанавливаем рабочую директорию WORKDIR /app # Копируем файлы зависимостей и устанавливаем их COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Копируем исходный код в контейнер COPY . . # Запускаем приложение CMD ["python", "app.py"]

Содержимое файла Dockerfile:

# Определяем базовый образ FROM node:18-alpine # Создаем директорию для приложения WORKDIR /usr/src/app # Копируем файлы зависимостей и устанавливаем их COPY package*.json ./ RUN npm install # Копируем исходные коды в контейнер COPY . . # Определяем порт, который будет слушать приложение EXPOSE 3000 # Запускаем приложение CMD ["node", "index.js"]

Пример файла docker-compose.yml:

services: web: build: . ports: - "5000:5000" environment: - DATABASE_HOST=db - DATABASE_USER=root - DATABASE_PASSWORD=example depends_on: - db db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: example MYSQL_DATABASE: exampledb volumes: - db-data:/var/lib/mysql volumes: db-data:

Для подачи заявки на размещение проекта необходимо подготовить проект с Dockerfile (наличие git обязательно), потом обратиться в IT-отдел университета с соответствующей заявкой... или просо написать в Telegarm Chat.

Эта инициатива не только способствует развитию практических навыков студентов, но и предоставляет им необходимые ресурсы для экспериментов и инноваций в сфере IT.