# 安装 Jenkins

sudo wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum upgrade
# Add required dependencies for the jenkins package
sudo yum install java-11-openjdk
sudo yum install jenkins
# 如果出现 no packages
# 再输入第一句代码

安装Java环境

# 如果是虚拟机安装阿里云 CentOS 镜像 | 下载种子里面安装 Java 环境可能会出现以下问题

# 输入 java -version 查询出来的版本号并非当前所安装的

# 1. 查看当前 jdk 版本
java -version
# 2. 查看当前安装 jdk 版本
rpm -qa|grep java
# 3. 如果出现安装的版本在列表中
# 4. 编辑这个配置文件
vi /etc/profile
# 5. 在最后输入以下四句,JAVA_HOME 根据自己 jdk 的文件目录来定义
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.16.0.8-1.el7_9.x86_64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
# 6. 刷新这个配置文件
source /etc/profile

# 如果虚拟机 Linux 以管理员身份安装的,还需要将其他用户改为管理员否则两边查询的 Java 版本可能不一致

vi /etc/sudoers
# 找到 root 这行然后添加用户
reboot
# 重启生效

安装Jenkins

# 启动 Jenkins

service jenkins start

# 查看状态

service jenkins status

# 运行正常

Jenkins运行成功

# 如果遇到这种情况

查看状态

# 这个报错信息百度很久也没解决

# 后面查看内存使用率才发现原来 GitLab 吃的内存太多

# 查看内存使用率

free -h

查看状态

# 开启 GitLab 只剩下 247M 内存,关闭之后剩 2.7G

# 然后重启 Jenkins 就可以正常打开了

# 输入以下命令即可将密码打印在控制台

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

启动Jenkins

# 安装 DotNET6 SDK

# 安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库。 打开终端并运行以下命令:

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

# .NET SDK 使你可以通过 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。 若要安装 .NET SDK,请运行以下命令:

sudo yum install dotnet-sdk-6.0

安装DotNET6

# 安装 docker(设置阿里 yum 源)

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 可以查看所有仓库中所有 docker 版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

# 由于 repo 中默认只开启 stable 仓库,故这里安装的是最新稳定版

sudo yum install docker-ce

安装docker

# 启动 docker

sudo systemctl start docker
sudo systemctl status docker

启动docker

# 安装 Git

yum install -y git

安装Git

# Jenkins 配置 shell 自动化部署

# 创建 Jobs 配置 Git 选择构建中的执行 Shell

# Jenkins 下的项目目录 /var/lib/jenkins/jobs

# 可以进入对应项目中的 workspace 进行编译,编译通过基本就没啥问题了

# 如果 docker 中就一个镜像可以这样写 Jenkins 中运行的 shell 命令

#!/bin/bash
# 输出一提示的话
echo "Successfully^_^ ......................................................................................"
# 输出当前地址,可以在日志中看到当前路径,检查一些路径问题
pwd
# 删除所有容器
docker rm -vf $(docker ps -aq)
# 删除所有镜像
docker rmi -f $(docker images -aq)
# 构建镜像命令
docker build -t dotnet6api .
# 从镜像运行容器
# --name dotnet6apiweb 是容器名称
# dotnet6api 是绑定的镜像名称
# 5000 是对外暴露的端口
# 80 是 docker 内部绑定的端口
# -e TZ=Asia/Shanghai 是将容器内部时间设置为上海时间
docker run -e TZ=Asia/Shanghai -d -p 5000:80 --restart=always --name dotnet6apiweb dotnet6api

# 如果有很多镜像和容器只需要更新当前镜像和容器

#!/bin/bash
# 输出一提示的话
echo "Successfully^_^ ......................................................................................"
# 输出当前地址,可以在日志中看到当前路径,检查一些路径问题
pwd
# 构建镜像命令
docker build -t dotnet6api .
# 更新镜像
docker push dotnet6api
# 停止容器
docker stop dotnet6apiweb
# 删除容器
docker rm dotnet6apiweb
# 从镜像运行容器
# --name dotnet6apiweb 是容器名称
# dotnet6api 是绑定的镜像名称
# 5000 是对外暴露的端口
# 80 是 docker 内部绑定的端口
# -e TZ=Asia/Shanghai 是将容器内部时间设置为上海时间
docker run -e TZ=Asia/Shanghai -d -p 5000:80 --restart=always --name dotnet6apiweb dotnet6api

# 首次 Jenkins 构建会报错,报错信息 dial unix /var/run/docker.sock: connect: permission denied

# 添加当前用户到 docker 用户组  ${USER} 指用户名
sudo gpasswd -a ${USER} docker
# 查看用户组下用户,检查添加是否成功
cat /etc/group | grep docker
# 重启 docker 服务
sudo service docker restart
# 切换当前会话到新组【group】或重启会话
newgrp - docker
# 更改文件权限
sudo chmod 666 /var/run/docker.sock

# 再次构建项目

构建成功

# 输入 IP 加端口号项目运行正常

# 踩到一个小坑,因为日志用的是 Log4net,而日志文件名叫 Log4net.Config 中间有大写

# 最后编译报错找不到 log4net.config,后面把文件名改为小写即可通过了

# DockerFile 是通过 VS 自动生成的没有任何修改,将其移动到解决方案 sln 同级目录即可

# docker 基本命令

# 查看所有镜像

docker image ls

# 查看所有容器

docker ps -a

# 停止指定容器

docker stop 容器名

# 删除指定容器

docker rm 容器名

# 删除所有容器

docker rm -vf $(docker ps -aq)

# 删除指定镜像

docker rmi 镜像名

# 删除所有镜像

docker rmi -f $(docker images -aq)

# 停止 Docker 服务并查看运行状态

service docker stop
service docker status

# 扩展知识,发布项目想查看日志怎么办

# 进入容器 dotnet6apiweb

docker exec -it dotnet6apiweb /bin/bash

# 容器里面相当于一个系统所以无法使用 vim 等操作

# 安装 vim

apt-get install vim

# 出现错误

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package vim

# 以下命令貌似会把本地的源同步到 docker 容器中再安装就可以了

apt-get update
apt-get install vim

# 退出容器快捷键 CTRL + P 然后 CTRL + Q

更新于 阅读次数

请我喝茶~( ̄▽ ̄)~*

Tianci 微信支付

微信支付

Tianci 支付宝

支付宝