Setup ghcr

This commit is contained in:
3252a8
2026-04-03 20:36:34 +03:00
parent 55f8db11ce
commit 85c276bcf5
5 changed files with 32 additions and 36 deletions
+6 -15
View File
@@ -1,4 +1,4 @@
name: Build and Push Dev Docker Image name: Build and Push Dev GHCR Image
on: on:
push: push:
@@ -9,9 +9,7 @@ on:
- dev - dev
env: env:
GHCR_REGISTRY: ghcr.io GHCR_IMAGE: ghcr.io/3252a8/remnawave-tg-shop
IMAGE_NAME: ${{ github.repository }}
DOCKERHUB_IMAGE: docker.io/${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }}
jobs: jobs:
build: build:
@@ -24,29 +22,22 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GitHub Container Registry - name: Log in to GitHub Container Registry
uses: docker/login-action@v3 uses: docker/login-action@v3
with: with:
registry: ${{ env.GHCR_REGISTRY }} registry: ghcr.io
username: ${{ github.actor }} username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- name: Log in to Docker Hub - name: Set up Docker Buildx
uses: docker/login-action@v3 uses: docker/setup-buildx-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker - name: Extract metadata (tags, labels) for Docker
id: meta id: meta
uses: docker/metadata-action@v5 uses: docker/metadata-action@v5
with: with:
images: | images: |
${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }} ${{ env.GHCR_IMAGE }}
${{ env.DOCKERHUB_IMAGE }}
tags: | tags: |
type=ref,event=branch type=ref,event=branch
type=ref,event=pr type=ref,event=pr
+14 -14
View File
@@ -1,4 +1,4 @@
name: Build and Publish multi-arch Docker Image name: Build and Publish GHCR Docker Image
on: on:
push: push:
@@ -10,8 +10,7 @@ on:
- 'README.md' - 'README.md'
env: env:
GHCR_IMAGE: ghcr.io/${{ github.repository }} GHCR_IMAGE: ghcr.io/3252a8/remnawave-tg-shop
DOCKERHUB_IMAGE: docker.io/${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }}
jobs: jobs:
build-and-push: build-and-push:
@@ -31,26 +30,27 @@ jobs:
username: ${{ github.actor }} username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up QEMU (для эмуляции arm64 на x86) - name: Set up QEMU (для эмуляции arm64 на x86)
uses: docker/setup-qemu-action@v3 uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3 uses: docker/setup-buildx-action@v3
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: |
${{ env.GHCR_IMAGE }}
tags: |
type=raw,value=latest
type=semver,pattern={{version}}
- name: Build and push multi-arch Docker image - name: Build and push multi-arch Docker image
uses: docker/build-push-action@v5 uses: docker/build-push-action@v5
with: with:
context: . context: .
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: | tags: ${{ steps.meta.outputs.tags }}
${{ env.GHCR_IMAGE }}:latest labels: ${{ steps.meta.outputs.labels }}
${{ env.GHCR_IMAGE }}:${{ github.ref_name }}
${{ env.DOCKERHUB_IMAGE }}:latest
${{ env.DOCKERHUB_IMAGE }}:${{ github.ref_name }}
+9 -4
View File
@@ -45,7 +45,7 @@
1. **Клонируйте репозиторий:** 1. **Клонируйте репозиторий:**
```bash ```bash
git clone https://github.com/kavore/remnawave-tg-shop git clone https://github.com/3252a8/remnawave-tg-shop
cd remnawave-tg-shop cd remnawave-tg-shop
``` ```
@@ -182,7 +182,7 @@
### 1. Клонирование репозитория ### 1. Клонирование репозитория
```bash ```bash
git clone https://github.com/kavore/remnawave-tg-shop && cd remnawave-tg-shop git clone https://github.com/3252a8/remnawave-tg-shop && cd remnawave-tg-shop
``` ```
### 2. Настройка переменных окружения ### 2. Настройка переменных окружения
@@ -325,9 +325,14 @@ cd /opt/remnawave/nginx && docker compose down && docker compose up -d && docker
## 🐳 Docker ## 🐳 Docker
Файлы `Dockerfile` и `docker-compose.yml` уже настроены для сборки и запуска проекта. `docker-compose.yml` использует готовый образ с GitHub Container Registry, но вы можете раскомментировать `build: .` для локальной сборки. Файлы `Dockerfile` и `docker-compose.yml` уже настроены для локальной сборки и запуска проекта. Если нужен готовый образ из GHCR, используйте `docker-compose-remote-server.yml` или переключите `docker-compose.yml` на строку `image:` вместо `build: .`.
Для автоматической публикации образов настроены GitHub Actions (`.github/workflows`). По умолчанию образы пушатся в GitHub Container Registry и Docker Hub. Добавьте в Secrets репозитория значения `DOCKERHUB_USERNAME` и `DOCKERHUB_TOKEN` (персональный access token или пароль для Docker Hub), чтобы загрузка в Docker Hub работала корректно. Образ публикуется в GitHub Container Registry по пути `ghcr.io/3252a8/remnawave-tg-shop`. GitHub Actions выкладывают теги `latest` и `0.1.0`: `latest` обновляется из `main`, а `0.1.0` появляется при сборке тега `v0.1.0`.
Чтобы закрепить версию на сервере, можно запустить:
```bash
IMAGE_TAG=0.1.0 docker compose -f docker-compose-remote-server.yml up -d
```
## 📁 Структура проекта ## 📁 Структура проекта
+1 -1
View File
@@ -1,6 +1,6 @@
services: services:
remnawave-tg-shop: remnawave-tg-shop:
image: kavore/remnawave-tg-shop:latest image: ghcr.io/3252a8/remnawave-tg-shop:${IMAGE_TAG:-latest}
container_name: remnawave-tg-shop container_name: remnawave-tg-shop
hostname: remnawave-tg-shop hostname: remnawave-tg-shop
env_file: env_file:
+1 -1
View File
@@ -1,6 +1,6 @@
services: services:
remnawave-tg-shop: remnawave-tg-shop:
# image: kavore/remnawave-tg-shop:latest # image: ghcr.io/3252a8/remnawave-tg-shop:${IMAGE_TAG:-latest}
build: . build: .
container_name: remnawave-tg-shop container_name: remnawave-tg-shop
hostname: remnawave-tg-shop hostname: remnawave-tg-shop