Ubuntu系统 用docker安装jenkins

mhzch / 2024-10-11 / 原文

1.1.1 服务器准备


如果刚买的服务器是ubuntu 一开始默认用户是ubuntu
需要在Ubuntu云服务器上使用root用户登录实例

1.设置root密码

sudo passwd root
输入两次密码 返回一下内容表示密码设置成功

passwd: password updated successfully

执行以下命令,打开sshd_config配置文件
sudo nano /etc/ssh/sshd_config
找到#Authentication,将PermitRootLogin参数修改为yes(如果PermitRootLogin参数被注释,请去掉首行的注释符号“#”)
执行以下命令,重启ssh服务
sudo service ssh restart

2.安装docker

Step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
Step 2: 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
Step 4: 更新并安装 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
​Step 5: 开启Docker服务
sudo service docker start
Step 6: 设置Docker开机自启动
systemctl enable docker
Step 7: 启动Docker
systemctl start docker
Step 8: 查看版本
docker --version

3.配置docker镜像源

修改docker配置文件
sudo nano /etc/docker/daemon.json
(就算没有这个文件也会创建一个)
添加镜像源
只需在 daemon.json 中添加 registry-mirrors 字段

{
  "registry-mirrors": ["https://register.liberx.info"]
}

重启docker服务
sudo systemctl restart docker

4.安装必要组件

安装git
sudo apt-get -y install git
查看git版本
git --version

安装.Net Core SDK
​每个系统只需要运行一次

#20.04
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
 
#18.04
wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
 
#16.04
wget https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb

//使用管理员权限安装名为 packages-microsoft-prod.deb 的软件包
sudo dpkg -i packages-microsoft-prod.deb

//删除名为 packages-microsoft-prod.deb 的文件
rm packages-microsoft-prod.deb
 
# Ubuntu 22.04 及更高版本无须执行上述命令。

更新一下软件源 
sudo apt-get update

执行安装SDK

sudo apt-get install -y dotnet-sdk-7.0
sudo apt-get install -y dotnet-sdk-6.0
sudo apt-get install -y dotnet-sdk-5.0
sudo apt-get install -y dotnet-sdk-3.1
sudo apt-get install -y dotnet-sdk-2.1

查看已安装的版本
dotnet --list-sdks
dotnet --list-runtimes

5.安装jenkins

首先那我们在一个空的文件夹里,创建一个Dockerfile文件

FROM jenkins/jenkins
 
# 切换到 root 用户,以便安装 .NET Core SDK
USER root
 
# 显示系统信息
RUN uname -a && cat /etc/*release
 
# 更新 apt 源并安装常用依赖
RUN apt-get update && apt-get install -y \
    curl \
    apt-transport-https \
    software-properties-common

# 安装 gettext 和 libunwind
RUN apt-get update && apt-get install -y \
    gettext-base \
    libunwind-dev

 
# 添加 Microsoft 的 GPG 密钥
RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
RUN mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
RUN sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-stretch-prod stretch main" > /etc/apt/sources.list.d/dotnetdev.list'
 
#安装.NET Core framework
RUN apt-get install -y wget
RUN apt-get install -y sudo
RUN wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
RUN sudo dpkg -i packages-microsoft-prod.deb
RUN rm packages-microsoft-prod.deb
RUN apt-get update
RUN apt-cache policy libssl-dev
RUN apt-get install libssl-dev
RUN apt-get install -y dotnet-sdk-8.0
 
# 切换回 jenkins 用户
USER jenkins

根据这个dockerfile构建镜像
docker build -t mhzch/apkimg .

创建jenkins工作目录
//创建工作目录
mkdir /home/jenkins_home
//赋予权限
chown -R 1000 /home/jenkins_home
生成jenkins容器

docker run -u root --rm -d -p 3001:8080 --name jenkins2 \
-v /usr/bin/docker:/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /home/dockerVolumes2/jenkins_home:/var/jenkins_home \
laozhangisphi/dnt-docker-jenkins

6.配置jenkins

查看jenkins管理员密码
docker exec jenkins1 cat /var/jenkins_home/secrets/initialAdminPassword

下面的源码管理如果是github 需要添加 凭证

添加凭证需要Personal Access Token (PAT) 认证
在github上打开设置 添加新 Tokens(classic)就行

添加完需要配置jenkins凭证
用户名写 github名字 密码写刚刚创建的Token id可以空着

然后是构建命令sell

dotnet restore
dotnet build
cd Blog.Core.Api


dotnet publish
echo "Successfully!!!!  ^  please see the file ."
cd bin/Release/net8.0/publish

#rm -f appsettings.json
#\cp -rf /var/jenkins_home/workspace/SecurityConfig/Blog.Core/appsettings.json appsettings.json


docker stop fervent_boum
docker rm fervent_boum
docker rmi mhzch/apkimg
docker build -t mhzch/apkimg . 
docker run --name fervent_boum -p 8081:9291 mhzch/apkimg

应用 保存就行

7.安装反向代理Nginx

更新一下软件源
sudo apt-get update
安装nginx
sudo apt install nginx
启用和启动服务
sudo systemctl enable nginx
sudo systemctl start nginx
NGINX 服务代理配置文件

server {
  listen 443 ssl;
  server_name “你的域名或服务器ip”;
  #证书地址
  ssl_certificate /etc/nginx/ssl/mhzch.cn_bundle.crt;
  ssl_certificate_key /etc/nginx/ssl/mhzch.cn.key;

  #可选:配置其他 SSL 参数
  #ssl_protocols TLSv1.2 TLSv1.3;
  #ssl_prefer_server_ciphers on;
  #ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";

  location / {
    root html;
    proxy_pass http://“你要代理的项目url”;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection keep-alive;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_cache_bypass $http_upgrade;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    index index.html index.htm;
  }
 }