Bài viết này hướng dẫn cách triển khai và cấu hình Jenkins sử dụng Docker, bao gồm các phương pháp khác nhau như chạy trực tiếp, sử dụng docker-compose và Kubernetes.
1. Triển khai Docker
Tài liệu tham khảo:
2. Triển khai Jenkins Container
2.1 Tạo thư mục
mkdir -p /opt/jenkins_data/config mkdir -p /opt/jenkins_data/home
2.2 Tạo mạng
Mạng cho local:
docker network create \ --driver=bridge \ --subnet=172.13.0.0/16 \ --ip-range=172.13.0.0/16 \ --gateway=172.13.0.1 \ --attachable \ net_local
Mạng cho Swarm:
docker network create \ --driver=overlay \ --subnet=172.14.0.0/16 \ --ip-range=172.14.0.0/16 \ --gateway=172.14.0.1 \ --attachable \ net_swarm
2.3 Tạo container
Sử dụng image chính thức từ Docker Hub: **jenkins/jenkins**.
2.3.1 Cách dùng lệnh run
docker run -d \ --name jenkins_instance \ -v /opt/jenkins_data/home:/var/jenkins_home \ -p 8080:8080 \ --network net_local \ --cpus 2 \ --memory 2G \ --restart on-failure \ jenkins/jenkins:latest
Xóa container nếu cần:
docker stop jenkins_instance docker rm jenkins_instance
2.3.2 Sử dụng docker-compose
Tạo file docker-compose.yml:
vi /opt/jenkins_data/docker-compose.yml
Nội dung file:
version: '2'
services:
jenkins_service:
image: jenkins/jenkins:latest
volumes:
- /opt/jenkins_data/home:/var/jenkins_home
ports:
- 8080:8080
networks:
- net_local
networks:
net_local:
external: true
Khởi tạo container:
cd /opt/jenkins_data docker-compose up -d
Xóa tất cả container trong file compose:
docker-compose down
2.3.3 Sử dụng stack
Tạo file jenkins_stack.yml:
vi /opt/jenkins_data/jenkins_stack.yml
Nội dung file:
version: '3.7'
services:
jenkins_svc:
image: jenkins/jenkins:latest
volumes:
- /opt/jenkins_data/home:/var/jenkins_home
deploy:
replicas: 1
restart_policy:
condition: on-failure
resources:
limits:
cpus: "2"
memory: 2048M
ports:
- 8080:8080
networks:
- net_swarm
networks:
net_swarm:
external: true
Khởi tạo stack:
docker stack deploy -c jenkins_stack.yml jenkins_stack
2.3.4 Sử dụng Kubernetes
Tạo thư mục lưu trữ script:
mkdir -p /opt/k8s/jenkins
Tạo file deploy_jenkins.yaml:
vi /opt/k8s/jenkins/deploy_jenkins.yaml
Nội dung file:
apiVersion: v1
kind: Service
metadata:
name: jenkins-svc
labels:
app: jenkins-service
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
protocol: TCP
nodePort: 8080 # Phải sửa đổi kube-apiserver để mở rộng dải cổng
selector:
app: jenkins-deploy
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins-deploy
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: jenkins-deploy
template:
metadata:
labels:
app: jenkins-deploy
spec:
securityContext:
fsGroup: 1000
volumes:
- name: jenkins-vol
hostPath:
path: /opt/jenkins_data/home
containers:
- name: jenkins_container
image: jenkins/jenkins:latest
env:
- name: TZ
value: "Asia/Ho_Chi_Minh"
volumeMounts:
- name: jenkins-vol
mountPath: /var/jenkins_home
ports:
- containerPort: 8080
Triển khai:
kubectl apply -f deploy_jenkins.yaml
3. Khởi tạo Jenkins
3.1 Xác minh
Lấy mật khẩu ban đầu tại đường dẫn trên máy chủ: /opt/jenkins_data/home/secrets/initialAdminPassword.
3.2 Cài đặt plugin
Chọn "Cài đặt các plugin được khuyến nghị" hoặc tùy chỉnh theo nhu cầu.
3.3 Tạo tài khoản admin
Điền thông tin đăng nhập và mật khẩu mới (ví dụ: admin/admin).
3.4 Sửa URL cấu hình
Jenkins URL mặc định là "http://localhost:8080", nhấn "Lưu và hoàn thành".
3.5 Truy cập Jenkins
Mở trình duyệt truy cập http://localhost:8080.