name: Build and Push Docker Image on: push: branches: [ "main" ] # Запускать сборку при push в ветку main pull_request: branches: [ "main" ] # Запускать при открытии Pull Request в ветку main jobs: build-and-push: runs-on: ubuntu-latest steps: # 1. Клонируем (чекаутим) репозиторий - name: Check out repository uses: actions/checkout@v4 # 2. Логинимся в Docker Hub, # используя секреты, добавленные в репозиторий (Settings → Secrets and variables → Actions) - name: Login to Docker Hub uses: docker/login-action@v2 with: registry: docker.io username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} # 3. Сборка и публикация Docker-образа - name: Build and push Docker image uses: docker/build-push-action@v4 with: context: . file: Dockerfile # Путь к вашему Dockerfile; если лежит в корне - оставляем так push: true # Говорим GitHub Actions автоматически пушить образ в реестр tags: ${{ secrets.DOCKERHUB_USERNAME }}/my-image-name:latest # Можно указать несколько тегов (например, latest + текущий SHA коммита): # tags: | # ${{ secrets.DOCKERHUB_USERNAME }}/my-image-name:latest # ${{ secrets.DOCKERHUB_USERNAME }}/my-image-name:${{ github.sha }}