[CICD] JENKINS - fourslickz/notes GitHub Wiki

DOCKER

docker-compose.yml

version: "3.9"

services:
  jenkins:
    image: jenkins/jenkins:lts
    container_name: jenkins
    restart: unless-stopped

    ports:
      - "8080:8080"
      - "50000:50000" # komunikasi Jenkins agent

    volumes:
      - /opt/docker/jenkins/jenkins_home:/var/jenkins_home

    environment:
      - TZ=Asia/Jakarta

    user: "1000:1000" # hindari permission issue

    networks:
      - jenkins-net

networks:
  jenkins-net:
    driver: bridge


1. Generate SSH Key DI SERVER JENKINS

Jika Jenkins container

docker exec -it jenkins bash

Generate key

ssh-keygen -t ed25519 -C "jenkins@github" -f /var/jenkins_home/.ssh/id_ed25519

2. Register SSH key PUBLIC ke Github

setup keys

  • GitHub → Settings → SSH and GPG keys
  • Add new SSH key
cat /var/jenkins_home/.ssh/id_ed25519.pub

validate key

ssh -T [email protected]

Tambahkan SSH Key PRIVATE ke Jenkins Credentials

Manage Jenkins → Credentials → Global → Add Credentials

  • Kind: SSH Username with private key
  • Username: git
  • Private Key: Enter directly
  • Paste isi file:
cat /var/jenkins_home/.ssh/id_ed25519
  • ID: github-ssh
  • Description: GitHub SSH Jenkins

3. Tambahkan Github Token ke Jenkins Credentials

Manage Jenkins → Credentials → Global → Add Credentials

  • Kind: Username with password
  • Username: your-github-username
  • Password: fine Grained Token (commit statuses, contents, metadata, pull request, webhooks)
  • ID: github-token
  • Description: GitHub PAT Jenkins

4. Webhook

setup GitHub Webhook → Jenkins

  • Di GitHub Repo
  • Settings → Webhooks → Add webhook
  • Payload URL
https://jenkins.domainkamu.com/github-webhook/

5. Tambahkan plugin ssh agent pada jenkins

Manage Jenkins

  • Plugins
  • Available plugins
  • Cari: SSH Agent