node全栈(一):在阿里云 Ubuntu 上部署 Jenkins(Docker 方式)实战指南

87 阅读2分钟

文章前言

永远把别人对你的批评记在心里,别人的表扬,就把它忘了。Hello 大家好~!我是淮桑榆

本文主要是记录如何在阿里云 Ubuntu 上使用Docker部署 Jenkins,特地记录下与诸位分享,如有阐述不对的地方欢迎在评论区指正。

观看到文章最后的话,如果觉得不错,可以点个关注或者点个赞哦!感谢~❤️

文章主体

感谢各位观者的耐心观看,在阿里云 Ubuntu 上使用Docker部署 Jenkins的正片即将开始,且听淮桑榆娓娓道来

image.png

当前使用的阿里云服务器配置:Ubuntu 22.04 64位,2 核(vCPU)2 GiB

搭建Docker

登录服务器

ssh root@你的公网IP

image.png

更新系统(建议)

sudo apt update

image.png

安装依赖

sudo apt install -y ca-certificates curl gnupg lsb-release

image.png

添加Docker官方GPG Key

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

image.png

添加Docker官方仓库

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

image.png

安装Docker引擎

sudo apt update
apt install docker-ce docker-ce-cli containerd.io

image.png

启动并设置开机自启

sudo systemctl start docker
sudo systemctl enable docker

image.png

验证 Docker

docker -v

image.png

实测拉镜像

docker pull hello-world

image.png

使用Docker部署Jenkins

拉Jenkins镜像

docker pull jenkins/jenkins:lts-jdk17

image.png

创建 Jenkins 数据目录

sudo mkdir -p /opt/jenkins_home

sudo chown -R 1000:1000 /opt/jenkins_home

sudo chmod -R 755 /opt/jenkins_home
  • Jenkins 容器里用户 UID 是 1000
  • 不改权限会直接启动失败

启动 Jenkins

docker run -d \
-u root \
--name jenkins \
--network host \
-e JENKINS_OPTS="--prefix=/jenkins" \
-v jenkins_home:/var/jenkins_home \
-v /var/project:/var/project \
jenkins/jenkins:lts-jdk17

确认 Jenkins 是否正常运行

docker ps

image.png

部署Nginx(反向代理)

安装 Nginx

sudo apt update
sudo apt install -y nginx

image.png

创建Nginx

sudo tee /etc/nginx/sites-available/jenkins > /dev/null << 'EOF'
server {
    listen 80;
    server_name 域名 公网ip;

    # Jenkins
    location /jenkins/ {
        proxy_pass http://127.0.0.1:8080/jenkins/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket 支持
        proxy_http_version 1.1;
        proxy_request_buffering off;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }

    # Node API
    location /api/ {
        proxy_pass http://127.0.0.1:3000/api/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
EOF

启用配置

sudo ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/

重载 Nginx

sudo systemctl reload nginx

获取 Jenkins 初始密码

docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

image.png

命令会返回一串密码,复制输出的那一串密码

浏览器访问 Jenkins

https://公网ip(或者域名)/jenkins

image.png

将上面复制的一串密码输入网页上的管理员密码输入框进行解锁Jenkins

解锁后Jenkins(选择安装推荐插件)

image.png

image.png

创建管理员用户

image.png

Jenkins安装已完成

image.png

开始使用Jenkins

image.png

结尾营业

看官都看到这了,如果觉得不错,可不可以不吝啬你的小手手帮忙点个关注或者点个赞

711115f2517eae5e.gif