(01)Configure Jenkins
Linux
1# Add Docker Hub credentials (ID: dockerhub) in Jenkins2# Install Docker + docker-compose on Jenkins agent3# Create Pipeline job pointing to JenkinsfileJenkinsfile
1pipeline {2 agent any3 4 environment {5 DOCKERHUB_CREDENTIALS = credentials('dockerhub')6 }7 8 stages {9 stage('Docker Login') {10 steps {11 sh 'echo $DOCKERHUB_CREDENTIALS_PSW | docker login -u $DOCKERHUB_CREDENTIALS_USR --password-stdin'12 }13 }14 stage('Build & Push Image') {15 steps {16 sh """17 cd laravel-app18 docker build -t $DOCKERHUB_CREDENTIALS_USR/laravel-app:latest .19 docker push $DOCKERHUB_CREDENTIALS_USR/laravel-app:latest20 """21 }22 }23 stage('Deploy with Compose') {24 steps {25 sh """26 cd laravel-app27 docker compose pull28 docker compose up -d29 docker compose ps30 """31 }32 }33 }34}laravel-app/docker-compose.yml
1services:2 app:3 image: youruser/laravel-app:latest4 ports:5 - "8080:80"6 depends_on:7 - db8 environment:9 DB_HOST: db10 DB_DATABASE: laravel11 DB_USERNAME: root12 DB_PASSWORD: secret13 14 db:15 image: mysql:5.716 environment:17 MYSQL_DATABASE: laravel18 MYSQL_ROOT_PASSWORD: secret19 volumes:20 - db_data:/var/lib/mysql21 22volumes:23 db_data:Step 01
1# Add Docker Hub credentials (ID: dockerhub) in Jenkins2# Install Docker + docker-compose on Jenkins agent3# Create Pipeline job pointing to Jenkinsfile