39 lines
1.7 KiB
YAML
39 lines
1.7 KiB
YAML
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 }}
|