Back to Blog
February 28, 2026|10 min read|DevOps

CI/CD Pipeline Setup with Docker & GitHub Actions

Step-by-step guide to building automated deployment pipelines that reduce deployment time by 35% using Docker, GitHub Actions, and Coolify.

DockerGitHub ActionsCI/CDDevOpsAutomation

Introduction

Continuous Integration and Continuous Deployment (CI/CD) are essential for modern software development. In this tutorial, I'll show you how to set up a robust CI/CD pipeline.

Why CI/CD Matters

  • **Faster releases**: From weeks to hours
  • **Fewer bugs**: Automated testing catches issues early
  • **Consistency**: Same process every time
  • **Rollback**: Easy reversion if issues arise

Docker Setup

First, let's containerize our application:

FROM eclipse-temurin:17-jdk-alpine AS build
WORKDIR /app
COPY . .
RUN ./mvnw package -DskipTests

FROM eclipse-temurin:17-jre-alpine COPY --from=build /app/target/*.jar app.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar", "app.jar"] ```

GitHub Actions Workflow

Create `.github/workflows/deploy.yml`:

name: Deploy

on: push: branches: [main]

jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' - name: Run tests run: ./mvnw test

build-and-push: needs: test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Build Docker image run: docker build -t myapp:${{ github.sha }} .

deploy: needs: build-and-push runs-on: ubuntu-latest steps: - name: Deploy to server uses: appleboy/ssh-action@master with: host: ${{ secrets.SERVER_HOST }} script: | docker pull myapp:${{ github.sha }} docker stop myapp || true docker run -d --name myapp -p 8080:8080 myapp:${{ github.sha }} ```

Coolify Integration

For self-hosted deployments, Coolify provides an excellent interface:

1. Connect your GitHub repository 2. Configure build settings 3. Set up environment variables 4. Enable auto-deploy on push

Results

After implementing this pipeline: - **Deployment time**: Reduced from 45 min to 15 min (67% faster) - **Failed deployments**: Reduced by 80% - **Rollback time**: Less than 5 minutes

Conclusion

CI/CD is not optional anymore. Start small, iterate, and continuously improve your pipeline.


Let's Connect!

Need help setting up your CI/CD pipeline?

  • **Email**: xsmafred@gmail.com
  • **LinkedIn**: [Message me](https://linkedin.com/in/prosper-merimee)
  • **WhatsApp**: +237 691-958-707

Got Questions?

I'm always happy to help! Here's how you can reach me:

About the Author

MP

Mouil Prosper

Full-Stack Developer

Results-driven Full-Stack Engineer with 4+ years of experience building scalable, cloud-native applications.

Related Articles

Ready to Start Your Project?

Let's discuss how I can help bring your ideas to life.