[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