Docker image publishing

This commit is contained in:
pmb
2025-06-26 14:44:42 -07:00
parent b15c4b60a7
commit cf022404bb
2 changed files with 134 additions and 0 deletions
+84
View File
@@ -0,0 +1,84 @@
# Docker Deployment with GitHub Actions
This repository includes a GitHub Actions workflow that automatically builds and publishes a Docker image to GitHub Container Registry (ghcr.io).
## How it Works
The workflow (`.github/workflows/docker-build-push.yml`) automatically:
1. **Triggers** on every push to the `main` branch
2. **Builds** the Docker image using the provided Dockerfile
3. **Pushes** the image to `ghcr.io/[your-username]/finger-web:latest`
## Setup Requirements
### 1. Repository Settings
Ensure your repository has the following settings configured:
- **Actions**: GitHub Actions must be enabled for your repository
- **Packages**: Container registry permissions must be enabled
### 2. Branch Configuration
The workflow is configured to trigger on pushes to the `main` branch. If your default branch has a different name (e.g., `master`), update the workflow file:
```yaml
on:
push:
branches: [ your-branch-name ] # Change 'main' to your branch name
```
### 3. Permissions
The workflow uses the built-in `GITHUB_TOKEN` which automatically has the necessary permissions. No additional secrets need to be configured.
## Using the Docker Image
### Pull and Run
Once the workflow runs successfully, you can pull and run your image:
```bash
# Pull the latest image
docker pull ghcr.io/[your-username]/finger-web:latest
# Run the container
docker run -p 5000:5000 ghcr.io/[your-username]/finger-web:latest
```
### Docker Compose
You can also update your `docker-compose.yml` to use the published image:
```yaml
version: '3.8'
services:
finger-web:
image: ghcr.io/[your-username]/finger-web:latest
ports:
- "5000:5000"
```
## Manual Trigger
The workflow can also be triggered manually:
1. Go to your repository on GitHub
2. Click on the "Actions" tab
3. Select "Build and Push Docker Image" workflow
4. Click "Run workflow"
## Workflow Features
- **Automatic tagging**: Images are tagged with `latest` for main branch pushes
- **Build caching**: Uses GitHub Actions cache to speed up builds
- **Security**: Uses GitHub's built-in authentication tokens
- **Metadata**: Includes proper OCI labels and build information
## Troubleshooting
### Common Issues
1. **Permission Denied**: Ensure GitHub Actions and Container Registry are enabled in repository settings
2. **Branch Mismatch**: Verify the workflow triggers on your default branch name
3. **Build Failures**: Check the Actions tab for detailed build logs
### Viewing Build Status
Monitor your builds in the GitHub Actions tab of your repository. Each push to main will show a new workflow run with detailed logs.