From cff8368b7ce6cbb50c104d697b9aafcf02f45656 Mon Sep 17 00:00:00 2001 From: machka pasla Date: Tue, 28 Oct 2025 14:39:47 +0300 Subject: [PATCH] docker hub push --- .github/workflows/dev-docker-build.yml | 19 ++++++++++++++----- .github/workflows/docker-publish.yml | 16 ++++++++++++++-- README.md | 2 ++ 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/.github/workflows/dev-docker-build.yml b/.github/workflows/dev-docker-build.yml index 96a0358..36cb4c0 100644 --- a/.github/workflows/dev-docker-build.yml +++ b/.github/workflows/dev-docker-build.yml @@ -9,8 +9,9 @@ on: - dev env: - REGISTRY: ghcr.io + GHCR_REGISTRY: ghcr.io IMAGE_NAME: ${{ github.repository }} + DOCKERHUB_IMAGE: docker.io/${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }} jobs: build: @@ -26,18 +27,26 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Log in to Container Registry + - name: Log in to GitHub Container Registry uses: docker/login-action@v3 with: - registry: ${{ env.REGISTRY }} + registry: ${{ env.GHCR_REGISTRY }} username: ${{ github.actor }} 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: Extract metadata (tags, labels) for Docker id: meta uses: docker/metadata-action@v5 with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + images: | + ${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }} + ${{ env.DOCKERHUB_IMAGE }} tags: | type=ref,event=branch type=ref,event=pr @@ -56,4 +65,4 @@ jobs: cache-to: type=gha,mode=max - name: Image digest - run: echo ${{ steps.meta.outputs.digest }} \ No newline at end of file + run: echo ${{ steps.meta.outputs.digest }} diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index c9a6be4..e1a8a28 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -9,6 +9,10 @@ on: paths-ignore: - 'README.md' +env: + GHCR_IMAGE: ghcr.io/${{ github.repository }} + DOCKERHUB_IMAGE: docker.io/${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }} + jobs: build-and-push: runs-on: ubuntu-latest @@ -27,6 +31,12 @@ jobs: username: ${{ github.actor }} 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) uses: docker/setup-qemu-action@v3 @@ -40,5 +50,7 @@ jobs: platforms: linux/amd64,linux/arm64 push: true tags: | - ghcr.io/${{ github.repository }}:latest - ghcr.io/${{ github.repository }}:${{ github.ref_name }} + ${{ env.GHCR_IMAGE }}:latest + ${{ env.GHCR_IMAGE }}:${{ github.ref_name }} + ${{ env.DOCKERHUB_IMAGE }}:latest + ${{ env.DOCKERHUB_IMAGE }}:${{ github.ref_name }} diff --git a/README.md b/README.md index 08e5408..1849156 100644 --- a/README.md +++ b/README.md @@ -164,6 +164,8 @@ Файлы `Dockerfile` и `docker-compose.yml` уже настроены для сборки и запуска проекта. `docker-compose.yml` использует готовый образ с GitHub Container Registry, но вы можете раскомментировать `build: .` для локальной сборки. +Для автоматической публикации образов настроены GitHub Actions (`.github/workflows`). По умолчанию образы пушатся в GitHub Container Registry и Docker Hub. Добавьте в Secrets репозитория значения `DOCKERHUB_USERNAME` и `DOCKERHUB_TOKEN` (персональный access token или пароль для Docker Hub), чтобы загрузка в Docker Hub работала корректно. + ## 📁 Структура проекта ```