Add configuration for BMad, Claude, OpenCode, and other AI agent tools and workflows.
83 lines
1.8 KiB
Markdown
83 lines
1.8 KiB
Markdown
---
|
|
name: docker-build-push
|
|
description: Build Docker images and push to Docker Hub for Coolify deployment. Use when the user needs to (1) build a Docker image locally, (2) push an image to Docker Hub, (3) deploy to Coolify via Docker image, or (4) set up CI/CD for Docker-based deployments with Gitea Actions.
|
|
---
|
|
|
|
# Docker Build and Push
|
|
|
|
Build Docker images locally and push to Docker Hub for Coolify deployment.
|
|
|
|
## Prerequisites
|
|
|
|
1. Docker installed and running
|
|
2. Docker Hub account
|
|
3. Logged in to Docker Hub: `docker login`
|
|
|
|
## Build and Push Workflow
|
|
|
|
### 1. Build the Image
|
|
|
|
```bash
|
|
docker build -t DOCKERHUB_USERNAME/IMAGE_NAME:latest .
|
|
```
|
|
|
|
Optional version tag:
|
|
|
|
```bash
|
|
docker build -t DOCKERHUB_USERNAME/IMAGE_NAME:v1.0.0 .
|
|
```
|
|
|
|
### 2. Test Locally (Optional)
|
|
|
|
```bash
|
|
docker run -p 3000:3000 DOCKERHUB_USERNAME/IMAGE_NAME:latest
|
|
```
|
|
|
|
### 3. Push to Docker Hub
|
|
|
|
```bash
|
|
docker push DOCKERHUB_USERNAME/IMAGE_NAME:latest
|
|
```
|
|
|
|
## Coolify Deployment
|
|
|
|
In Coolify dashboard:
|
|
|
|
1. Create/edit service → Select **Docker Image** as source
|
|
2. Enter image: `DOCKERHUB_USERNAME/IMAGE_NAME:latest`
|
|
3. Configure environment variables
|
|
4. Deploy
|
|
|
|
## Automated Deployment with Gitea Actions
|
|
|
|
Create `.gitea/workflows/deploy.yaml`:
|
|
|
|
```yaml
|
|
name: Deploy to Coolify
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Trigger Coolify Deployment
|
|
run: |
|
|
curl -X POST "${{ secrets.COOLIFY_WEBHOOK_URL }}"
|
|
```
|
|
|
|
### Setup:
|
|
|
|
1. **Get Coolify Webhook URL**: Service settings → Webhooks → Copy URL
|
|
2. **Add to Gitea Secrets**: Settings → Secrets → Add `COOLIFY_WEBHOOK_URL`
|
|
|
|
### Full Workflow:
|
|
|
|
1. Build and push locally
|
|
2. Push code to Gitea (triggers workflow)
|
|
3. Gitea notifies Coolify
|
|
4. Coolify pulls latest image and redeploys
|