Jenkins+docker +net core 3.1 实现自动化部署
-
拉取jenkins
docker pull jenkins/jenkins -
启动docker容器
mkdir /usr/local/jenkins
chown -R 1000:1000 /usr/local/jenkins
sudo chown -R 1000:1000 /var/run/docker.sock
docker run -itd -p 8080:8080 -p 50000:50000 --name myjenkins --privileged=true -v /usr/local/jenkins:/var/jenkins_home -v /usr/bin/docker:/bin/docker -v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins
-
打开浏览器配置Jenkins
http://118.24.51.65:8080/ -
查看管理员密码
docker logs myjenkins
或
进入myjenkins容器
docker exec -it myjenkins bash -
安装推荐插件 (等待安装完成)
-
配置管理员密码
-
修改根目录(加速)
-
/usr/local/jenkins/hudson.model.UpdateCenter.xml<sites>
<site>
<id>default</id>
<url>http://mirror.xmission.com/jenkins/updates/update-center.json</url>
</site>
</sites> -
等jenkins初始化完成后找到跟目录下面updates文件中default.json文件做如下修改 /usr/local/jenkins/updatessed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json -
重启jenkins
docker restart myjenkins
-
-
Jenkins 系统管理-脚本命令行,执行指令,修改时间
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai') -
安装插件
Publish Over SSH -
配置 进入系统管理-》系统设置 找到Publish Over SSH
-
配置linux地址
-
【源码管理】配置GIT地址
-
【构建触发器】 选择轮询方式 * * * * * 表示每分钟轮询一次
-
构建环境【Delete workspace before build starts】勾选 表示删除工作空间 、【Abort the build if it's stuck】 超时时间会终止
-
构建shell命令(镜像跟容器名要小写)
清空多余的镜像(参考)
docker image prune
docker 下拉asp.net core 所需要的镜像(防止超时)
-
registry.cn-hangzhou.aliyuncs.com/newbe36524 阿里云加速
docker pull registry.cn-hangzhou.aliyuncs.com/newbe36524/aspnet:3.1
docker pull registry.cn-hangzhou.aliyuncs.com/newbe36524/sdk:3.1-buster
参考网站Dockerfile
ENV TIMEZONE=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TIMEZONE /etc/localtime && echo $TIMEZONE > /etc/timezone
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM registry.cn-hangzhou.aliyuncs.com/newbe36524/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM registry.cn-hangzhou.aliyuncs.com/newbe36524/sdk:3.1-buster AS build
WORKDIR /src
COPY ["WebApplication1/WebApplication1.csproj", "WebApplication1/"]
RUN dotnet restore "WebApplication1/WebApplication1.csproj"
COPY . .
WORKDIR "/src/WebApplication1"
RUN dotnet build "WebApplication1.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "WebApplication1.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENV TIMEZONE=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TIMEZONE /etc/localtime && echo $TIMEZONE > /etc/timezone
ENTRYPOINT ["dotnet", "WebApplication1.dll"]

浙公网安备 33010602011771号