您当前的位置:首页 > 电脑百科 > 程序开发 > 容器

本地Docker Jenkins构建dotcore web应用到Linux服务器 Docker上

时间:2019-12-10 11:56:14  来源:  作者:

1、准备工作

环境

前提准备

  1. 创建个有dockerfile文件的dotnet core 3 web项目
    新建一个dotnet 3.0的web项目,在项目文件夹添加Dockerfile文件,内容如下: FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base WORKDIR /App EXPOSE 80 COPY . . ENTRYPOINT ["dotnet", "WebApplication.dll"]
  2. 准备git仓库,将项目的代码上传上去
  3. 构建有dotnet core 3.0 环境的jenkins FROM jenkins/jenkins:lts # 切换root用户安装东西 USER root # Show distro information! RUN uname -a && cat /etc/*release RUN apt-get update RUN apt-get install -y curl libunwind8 gettext apt-transport-https 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' RUN apt-get update RUN apt-get install -y dotnet-sdk-3.1 # 切换回来jenkins用户 USER jenkins

因为jenkins里面是没有dotnetcore环境的,所以需要本地创建个支持dotnetcore环境的。
找个地方新建文件夹,创建dockerfile文件,内容如上。

  1. build镜像并运行容器 docker build . -t jenkins_dotnet 这里等待时间会比较长~ # 运行刚刚构建好的容器 docker run -d --name jenkins -p 8080:8080 jenkins_dotnet
  2. 打开jenkins,安装推荐插件
    打开 localhost:8080 ,可以看到
    docker exec -it jenkins bash dotnet --version cat /var/jenkins_home/secrets/initialAdminPassword 把密码复制出来登录,点击左边按钮安装推荐插件
    这里时间也会比较长,如果有部分安装失败了,等剩余的安装完后点击重试即可,如果服务器上还没有docker,现在可以去装下,装了的也可以连上服务器,去执行docker pull mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim拉取下dotnet core 3.1的镜像,等会创建镜像的时候就会快一点啦 插件安装完后,会有一些创建管理员和地址配置,搞一下吧。
    如果有插件安装失败,点过重试安装插件的,现在需要docker restart jenkins重启下应用,然后重新打开localhost:8080使用创建的管理员登录。

2、搞好了,开始干活

哦,还有些需要安装的插件 =.=||

需要安装的插件:

  • SCP publisher
  • Publish Over SSH
  • Environment Injector

进入 系统管理>插件管理->可选插件->输入插件名称->勾选需要插件->点击安装

安装完后,设置下这些插件,进入系统管理->系统配置,

  1. SCP publisher设置
    Ctrl + F 搜下 SCP找到SCP repository hosts-SCP sites设置位置,点新增
    HostName: 服务器IP地址
    Port:端口,默认22、
    Root Repository Path:文件存放目录
    User Name:登录用户名
    Password/Passphrase:密码
  2. Publish Over SSH 设置
    Ctrl + F 搜下 SCP找到SCP repository hosts-SSH Server设置位置,点新增再点高级,勾选上 Use password authentication, or use a different key
    Name:名称
    Hostname:服务器IP地址
    Username:登录用户名
    Remote Directory:远程目录
    Passphrase / Password:密码
    Port:连接端口(默认22)

配置完后别忘记点保存。

创建构建任务第一种:自由风格的软件项目

点击新建任务, 选择构建一个自由风格的软件项目

本地Docker Jenkins构建dotcore web应用到Linux服务器 Docker上

 

  1. 源码管理设置
    选择Git,在Repository URL填入Git仓库地址
  2. 触发构建器
    可以配置一些定时构建等,我这里只是测试所以没有选择触发器。
  3. 构建环境 勾选Delete workspace before build starts 勾选Inject environment variables to the build process,存放构建是需要用到的环境变量
  4. 构建- 添加执行shell步骤
    增加构建步骤-执行shell,脚本如下: #切换目录 cd ./WebApplication #还原nuget包 dotnet restore #编译 dotnet build #删除之前发布文件 cd ./bin rm -rf web-publish rm -f web-publish.tar cd .. #发布 dotnet publish -o ./bin/web-publish #删除配置文件 cd ./bin/web-publish cp ../../Dockerfile . rm -rf config cd .. #压缩 tar -cvf web-publish.tar web-publish
  5. 构建后步骤 上传文件到服务器
    增加构建后操作步骤-选择Publish artifacts to SCP Repository ,填入需要上传的压缩文件
    这里文件目录的基础目录是workspace,如果不知道具体的地址,可以先不创建构建后步骤保存下,然后点击立即构建,等待成功后,点击工作空间看下文件路径是怎样的,比如我的是这样的:
    得到压缩文件目录是WebApplication/bin/web-publish.tar 添加 服务器上要执行的shll命令 步骤 增加构建后操作步骤- 选择 Send build artifacts over SSH 这里要新增两个Transfers Set,在第一个Transfers的Exec command输入创建镜像脚本: # 工作目录 WORK_DIR="/root/publish/WebApplication"; cd ${WORK_DIR} # 删除原有发布文件夹 rm -rf web-publish; # 解压 tar -xvf web-publish.tar; #删除文件压缩包 rm -f web-publish.tar; #切换生成目录 cd web-publish/ #备份镜像 #停止容器 docker stop ${DOCKER_CONTAINER_NAME}; #删除容器 docker rm ${DOCKER_CONTAINER_NAME}; #删除镜像 docker rmi $(docker images | grep ${DOCKER_IMAGE_NAME}); #创建镜像 docker build -t ${DOCKER_IMAGE_NAME} ./; 在第二个Transfers的Exec command,输入运行容器命令: # 运行容器 docker run -d -p 8001:80 --name ${DOCKER_CONTAINER_NAME} ${DOCKER_IMAGE_NAME} 到这里所有的设置都已经搞好啦,别忘记点击保存,点击立即构建 测试一下吧~

创建构建任务第二种:流水线[pipeline](未完成)

TODO:评论有位哥推荐流水线 可视化会好一点,有空再去尝试下发出来~

成果展示

本地Docker Jenkins构建dotcore web应用到Linux服务器 Docker上

 


本地Docker Jenkins构建dotcore web应用到Linux服务器 Docker上

 


本地Docker Jenkins构建dotcore web应用到Linux服务器 Docker上

 

第一次研究这个,本来以为本地用Docker直接拉取个jenkins会简单快速一点,但还是花了不少时间~ 如果有什么问题,欢迎评论,大家一起学习解决。

原文地址:https://www.cnblogs.com/xiao24/p/docker_jenkins_dotnetcore3.html#top



Tags:Docker   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一、前因闲来没事,想着升级下树莓派中的应用,没曾想,全是最新的,害我以为被黑客眷顾,帮我升级了。多方查证,才知道,是上次搭建的photoprism搞的鬼,不过也不全是它的锅,只是它的yml文...【详细内容】
2021-12-28  Tags: Docker  点击:(2)  评论:(0)  加入收藏
一、为什么要搭建主从架构呢1.数据安全,可以进行数据的备份。2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器。从而缓解数据...【详细内容】
2021-12-15  Tags: Docker  点击:(12)  评论:(0)  加入收藏
在网页中渲染公式一直是泛学术工具绕不开的一个功能,最近更新产品功能,正巧遇到了这个需求,于是使用容器方式简单实现了一个相对靠谱的公式渲染服务。分享出来,希望能够帮到有类...【详细内容】
2021-12-01  Tags: Docker  点击:(11)  评论:(0)  加入收藏
1.1 docker命令直接部署1.1.1 拉取镜像docker pull wurstmeister/zookeeperdocker pull wurstmeister/kafka1.1.2 启动zookeeper容器docker run -d --name myzookeeper -p 2...【详细内容】
2021-11-15  Tags: Docker  点击:(48)  评论:(0)  加入收藏
01 前言 顺着docker的发展,很多测试的同学也已经在测试工作上使用docker作为环境基础去进行一些自动化测试,这篇文章主要讲述我们在docker中使用浏览器进行自动化测试如果可以...【详细内容】
2021-10-29  Tags: Docker  点击:(42)  评论:(0)  加入收藏
因为你懂得的原因,下载docker镜像速度非常喜感,故收集几个国内常用的docker镜像。Docker中国区官方镜像地址:https://registry.docker-cn.com网易163的镜像http://hub-mirror.c...【详细内容】
2021-10-28  Tags: Docker  点击:(48)  评论:(0)  加入收藏
我们在很多场景下都需要做笔记,来对抗遗忘,一份好的笔记不仅能在需要的时候供我们查阅,也能帮助我们归纳整理知识提高做事效率。 目前市面上有很多云笔记软件,体验上各有不同,但...【详细内容】
2021-10-11  Tags: Docker  点击:(62)  评论:(0)  加入收藏
1. Nacos官网Nacos Docker 快速开始2. Clone 项目git clone https://github.com/nacos-group/nacos-docker.git3. cd 到nacos-docker 路径下 直接启动即可cd nacos-dockerdo...【详细内容】
2021-09-16  Tags: Docker  点击:(109)  评论:(0)  加入收藏
今天不做保姆级教程,分享奶爸常用、好用的Docker应用。有了这些Docker,Nas的可玩性会大幅提高,有时候奶爸也在想,刨去官方套件不考虑的话,Nas真的是差不多。如果小伙伴们有需要,后...【详细内容】
2021-09-03  Tags: Docker  点击:(169)  评论:(0)  加入收藏
环境要求 ubuntu系统:20.04 docker版本:20.10.7 redis版本:6.0.6步骤由于我这里已经有相应的redis镜像,这里就不记录了,关于docker一些基础知识可以看我以前的笔记开启3台re...【详细内容】
2021-07-26  Tags: Docker  点击:(117)  评论:(0)  加入收藏
▌简易百科推荐
一、前因闲来没事,想着升级下树莓派中的应用,没曾想,全是最新的,害我以为被黑客眷顾,帮我升级了。多方查证,才知道,是上次搭建的photoprism搞的鬼,不过也不全是它的锅,只是它的yml文...【详细内容】
2021-12-28  闲余悟道    Tags:Docker   点击:(2)  评论:(0)  加入收藏
一、为什么要搭建主从架构呢1.数据安全,可以进行数据的备份。2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器。从而缓解数据...【详细内容】
2021-12-15  实战Java    Tags:Docker   点击:(12)  评论:(0)  加入收藏
在网页中渲染公式一直是泛学术工具绕不开的一个功能,最近更新产品功能,正巧遇到了这个需求,于是使用容器方式简单实现了一个相对靠谱的公式渲染服务。分享出来,希望能够帮到有类...【详细内容】
2021-12-01  编程菌zfn    Tags:Docker   点击:(11)  评论:(0)  加入收藏
1.1 docker命令直接部署1.1.1 拉取镜像docker pull wurstmeister/zookeeperdocker pull wurstmeister/kafka1.1.2 启动zookeeper容器docker run -d --name myzookeeper -p 2...【详细内容】
2021-11-15  无    Tags:docker   点击:(48)  评论:(0)  加入收藏
01 前言 顺着docker的发展,很多测试的同学也已经在测试工作上使用docker作为环境基础去进行一些自动化测试,这篇文章主要讲述我们在docker中使用浏览器进行自动化测试如果可以...【详细内容】
2021-10-29  小码哥聊软件测试    Tags:Docker   点击:(42)  评论:(0)  加入收藏
因为你懂得的原因,下载docker镜像速度非常喜感,故收集几个国内常用的docker镜像。Docker中国区官方镜像地址:https://registry.docker-cn.com网易163的镜像http://hub-mirror.c...【详细内容】
2021-10-28  抓蛙程序猿    Tags:docker   点击:(48)  评论:(0)  加入收藏
环境:Spring5.3.10通常,应用程序开发人员不需要对ApplicationContext实现类进行子类化。相反,SpringIOC容器可以通过插入特殊集成接口的实现来扩展。使用BeanPostProcessor自定...【详细内容】
2021-10-26  Java网络研发架构师    Tags:Spring   点击:(34)  评论:(0)  加入收藏
我们在很多场景下都需要做笔记,来对抗遗忘,一份好的笔记不仅能在需要的时候供我们查阅,也能帮助我们归纳整理知识提高做事效率。 目前市面上有很多云笔记软件,体验上各有不同,但...【详细内容】
2021-10-11  运维贼船    Tags:docker   点击:(62)  评论:(0)  加入收藏
1. Nacos官网Nacos Docker 快速开始2. Clone 项目git clone https://github.com/nacos-group/nacos-docker.git3. cd 到nacos-docker 路径下 直接启动即可cd nacos-dockerdo...【详细内容】
2021-09-16  程序狗爱化妆    Tags:Nacos   点击:(109)  评论:(0)  加入收藏
今天不做保姆级教程,分享奶爸常用、好用的Docker应用。有了这些Docker,Nas的可玩性会大幅提高,有时候奶爸也在想,刨去官方套件不考虑的话,Nas真的是差不多。如果小伙伴们有需要,后...【详细内容】
2021-09-03  晋升奶爸的垃圾佬    Tags:Docker   点击:(169)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条