commit
All checks were successful
Build and Run VSTU Compat Layer v1 / build_and_run (push) Successful in 31s
All checks were successful
Build and Run VSTU Compat Layer v1 / build_and_run (push) Successful in 31s
This commit is contained in:
52
.gitea/workflows/deploy.yml
Normal file
52
.gitea/workflows/deploy.yml
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
name: Build and Run VSTU Compat Layer v1
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build_and_run:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
# Шаг 1: Получаем исходный код проекта
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
# Шаг 2: Сборка Docker-образа локально на хост-машине
|
||||||
|
# Мы не пушим его в registry, а просто создаем с нужным тегом.
|
||||||
|
- name: Build Docker image
|
||||||
|
run: docker build -t vstu_compat_v1:latest .
|
||||||
|
|
||||||
|
# Шаг 3: Перезапуск контейнера на хост-машине
|
||||||
|
# Это сердце упрощенного workflow
|
||||||
|
- name: Restart the container
|
||||||
|
run: |
|
||||||
|
# 1. Останавливаем и удаляем старый контейнер, если он существует.
|
||||||
|
# `docker ps -q -f name=...` вернет ID контейнера, если он запущен.
|
||||||
|
# Конструкция `[ $(...) ] && ...` проверит, не пустой ли вывод.
|
||||||
|
if [ "$(docker ps -q -f name=vstu_schedule_repopulator)" ]; then
|
||||||
|
echo "Stopping and removing existing container..."
|
||||||
|
docker stop vstu_schedule_repopulator
|
||||||
|
docker rm vstu_schedule_repopulator
|
||||||
|
else
|
||||||
|
echo "No running container found. Skipping stop/remove."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 2. Запускаем новый контейнер из только что собранного локального образа.
|
||||||
|
# Команда точно такая же, как твоя.
|
||||||
|
echo "Starting new container..."
|
||||||
|
docker run -d \
|
||||||
|
--network cl2so4 \
|
||||||
|
--ip 172.20.0.48 \
|
||||||
|
-v /home/holder/fclay/secrets/vstu_schedule_repopulator.env:/app/.env \
|
||||||
|
--restart=always \
|
||||||
|
--name=vstu_schedule_repopulator \
|
||||||
|
vstu_schedule_repopulator:latest
|
||||||
|
|
||||||
|
# (Опционально) Шаг 4: Очистка старых, "висячих" образов
|
||||||
|
# Это хорошая практика, чтобы не засорять диск.
|
||||||
|
- name: Clean up old images
|
||||||
|
if: always() # Выполнять этот шаг всегда, даже если предыдущие провалились
|
||||||
|
run: docker image prune -f
|
||||||
Reference in New Issue
Block a user