Настройка сборки образов
Deploy Telegram Bot / build-and-push (push) Failing after 2m17s
Deploy Telegram Bot / deploy (push) Has been skipped

This commit is contained in:
2026-04-17 13:51:37 +03:00
parent 09979252f7
commit 8e172fc94f
2 changed files with 49 additions and 13 deletions
+46 -6
View File
@@ -3,11 +3,43 @@ name: Deploy Telegram Bot
on: on:
push: push:
branches: branches:
- main # Срабатывает только при пуше в main - main
jobs: jobs:
# ЧАСТЬ 1: Собираем образы и кладем в Gitea (чтобы делиться с ребятами)
build-and-push:
runs-on: ubuntu-latest # Замени на метку твоего раннера, если она другая
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Login to Gitea Container Registry
uses: docker/login-action@v3
with:
registry: https://git.codeanddice.ru # НАПРИМЕР: gitea.my-server.com
username: ${{ gitea.actor }}
password: ${{ secrets.GITEA_TOKEN }}
- name: Build and push Bot
uses: docker/build-push-action@v5
with:
context: .
file: src/GmRelay.Bot/Dockerfile
push: true
tags: https://git.codeanddice.ru/${{ gitea.actor }}/gmrelay-bot:latest
- name: Build and push Web
uses: docker/build-push-action@v5
with:
context: .
file: src/GmRelay.Web/Dockerfile
push: true
tags: https://git.codeanddice.ru/${{ gitea.actor }}/gmrelay-web:latest
# ЧАСТЬ 2: Запускаем эти образы на самом сервере
deploy: deploy:
runs-on: ubuntu-latest needs: build-and-push
runs-on: ubuntu-latest # Тот же локальный раннер
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
@@ -17,8 +49,16 @@ jobs:
echo "TELEGRAM_BOT_TOKEN=${{ secrets.TELEGRAM_BOT_TOKEN }}" > .env echo "TELEGRAM_BOT_TOKEN=${{ secrets.TELEGRAM_BOT_TOKEN }}" > .env
echo "POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }}" >> .env echo "POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }}" >> .env
echo "TELEGRAM_BOT_USERNAME=${{ secrets.TELEGRAM_BOT_USERNAME }}" >> .env echo "TELEGRAM_BOT_USERNAME=${{ secrets.TELEGRAM_BOT_USERNAME }}" >> .env
- name: Build and Deploy
- name: Deploy Containers
run: | run: |
# Останавливаем старого бота и поднимаем нового # Авторизуемся локальным докером в нашей Gitea
docker compose down docker login https://git.codeanddice.ru/ -u ${{ gitea.actor }} -p ${{ secrets.GITEA_TOKEN }}
docker compose up -d --build
# Так как раннер на том же сервере, образ уже закэширован,
# но pull гарантирует, что compose подхватит именно свежий latest-тег.
docker compose pull bot web
# Запускаем! Флаг -d оставит их работать в фоне.
# БД не перезапустится, так как её образ не менялся.
docker compose up -d
+3 -7
View File
@@ -12,15 +12,13 @@ services:
ports: ports:
- "5432:5432" - "5432:5432"
healthcheck: healthcheck:
test: ["CMD-SHELL", "pg_isready -U gmrelay -d gmrelay_db"] test: [ "CMD-SHELL", "pg_isready -U gmrelay -d gmrelay_db" ]
interval: 3s interval: 3s
timeout: 3s timeout: 3s
retries: 10 retries: 10
bot: bot:
build: image: https://git.codeanddice.ru/toutsu/gmrelay-bot:latest
context: .
dockerfile: src/GmRelay.Bot/Dockerfile
container_name: gmrelay_bot container_name: gmrelay_bot
restart: always restart: always
network_mode: host network_mode: host
@@ -32,9 +30,7 @@ services:
- "Telegram__BotToken=${TELEGRAM_BOT_TOKEN}" - "Telegram__BotToken=${TELEGRAM_BOT_TOKEN}"
web: web:
build: image: https://git.codeanddice.ru/toutsu/gmrelay-web:latest
context: .
dockerfile: src/GmRelay.Web/Dockerfile
container_name: gmrelay_web container_name: gmrelay_web
restart: always restart: always
network_mode: host network_mode: host