name: Docker Build and Push | |
on: | |
push: | |
branches: | |
- main # Triggers the workflow when changes are pushed to the 'main' branch | |
pull_request: | |
branches: | |
- main # Optional: Trigger on pull requests to 'main' for testing | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
# Step 1: Check out the repository | |
- name: Checkout code | |
uses: actions/checkout@v3 # Check out your GitHub repository | |
# Step 2: Set up Docker Buildx | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 # Set up Docker Buildx to support advanced features like multi-platform builds | |
with: | |
install: true | |
# Step 3: Log in to Docker Hub | |
- name: Log in to Docker Hub | |
uses: docker/login-action@v2 # Logs in to Docker Hub | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} # Your Docker Hub username stored as a GitHub secret | |
password: ${{ secrets.DOCKER_PASSWORD }} # Your Docker Hub password stored as a GitHub secret | |
# Step 4: Build and push the Docker image | |
- name: Build and Push Docker Image | |
uses: docker/build-push-action@v5 # Build and push the Docker image | |
with: | |
context: . # The context is the root of your repository | |
push: true # Automatically push the image after building | |
tags: ${{ secrets.DOCKER_USERNAME }}/blackboxv2:v786 # Replace 'your-app-name' with your desired Docker image name | |
# Step 5: Log out of Docker Hub | |
- name: Log out of Docker Hub | |
run: docker logout | |