Setup ghcr
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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 }}
|
|
||||||
|
|||||||
@@ -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,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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user