• 使用Jenkins部署asp.net core


    首先盗图一张

    1.在Github上创建一个测试仓库

    2.创建基于Asp.net Core的MVC项目

     运行解决方案,验证代码没有问题,然后将代码迁入Github

    3.添加Docker支持

    项目-->添加-->Docker 支持

    提示框选择【Linux】,点击确定

    系统会自动添加相应的Dockerfile文件和docker-compose文件

    此处使用默认的Dockerfile,仅修改端口号,该端口号需要跟shell文件对应

    FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
    WORKDIR /app
    EXPOSE 80

    修改Dockerfile文件的属性

    向项目中添加setup.sh文件(之后的Jenkins会用到,此处与代码并无关系)

     

    文件中的内容如下: 

    image_version=`date +%Y%m%d%H%M`;
    echo $image_version;
    # cd Jenkins2Docker
    git pull --rebase origin master;
    docker stop jenkins2docker;
    docker rm jenkins2docker;
    docker build -t jenkins2docker:$image_version .;
    docker images;
    docker run -p 10001:80 -d --name jenkins2docker jenkins2docker:$image_version;
    # -v ~/docker-data/house-web/appsettings.json:/app/appsettings.json -v ~/docker-data/house-web/NLogFile/:/app/NLogFile   --restart=always
    docker logs jenkins2docker;
    #删除build过程中产生的镜像    #docker image prune -a -f
    docker rmi $(docker images -f "dangling=true" -q)

    完成以上操作后,将代码迁入Github。

    此处需要注意的是

    4.配置Jenkins

    4.1新建一个“自由风格的软件项目”

    4.2设置General信息

    4.3配置源码信息

    4.4构建触发器

    (H/2表示2分钟做一次查询)

    4.5设置构建环境

    4.6构建选择shell

    4.7保存

    点击【应用】-->【保存】

    页面跳转后,点击【立即构建】(此处不点击,2分钟内也会自动构建

    4.8查看构建结果

    如图显示了5次构建,头三次的红色表示构建失败,4、5次的蓝色表示构建成功

    5.验证结果

    5.1查看镜像

    镜像到Tag是在shell文件中设置的,由时间字符串拼接而成,可以看到.net core生成的镜像还是很小的,毕竟包含了一个253M的run-time。

    5.2查看容器

     

    IMAGE:此处看到容器构建依赖的镜像,确实是我们刚刚生成的镜像。

    STATUS:如果status的状态不是Up,可以通过Jenkins构建的后台查看是否构建出现问题。

    PORTS:10001->80,80是我们在dockerfile中expose到端口,10001是容器创建时映射到服务器到端口。

    5.3查看网址

     

    6.写在最后

    不知是不是shell文件写的有问题,亦或是我该改设置dockerfile生成路径?

    代码迁入时需要修改下Dockerfile的路径,即从Jenkins2Docker内改到上一级的目录。

    有明白的朋友可以留个言

     

    7.参考

    https://cloud.tencent.com/developer/news/223449

    https://www.cnblogs.com/sunshine-wy/p/9860599.html

    https://www.cnblogs.com/TomGui/archive/2017/04/06/6673084.html

    8.常见错误

    8.1.Dockerfile编译报错

    Failed to build: Error parsing reference: “microsoft/dotnet:2.1-runtime AS base” is not a valid repository/tag

    解决方法:

    该问题出现的原因是docker的版本过低,具体如下

    FROM microsoft/aspnetcore-build:2.0 AS buildenv Error parsing reference

    centos7 docker升级到最新稳定版本

    8.2报错:镜像被多个repositories引用

    Error when deleting images - image is referenced in multiple repositories

    docker rmi -f <IMAGE_ID>

    参考:https://github.com/portainer/portainer/issues/497

    8.3删除虚挂镜像

    docker rmi $(docker images -f "dangling=true" -q)

    参考:http://www.cnblogs.com/stulzq/p/8962388.html

  • 相关阅读:
    jwt
    mybatis的回顾
    swagger
    MySQl总结
    Java异常
    常用Dos命令
    C++初级项目——机房预约系统
    C++中将数字型字符串转变为int类型的方法
    C++中int *a; int &a; int & *a; int * &a
    #define_CRT_SECURE_NO_WARNINGS的用法
  • 原文地址:https://www.cnblogs.com/imstrive/p/10637725.html
Copyright © 2020-2023  润新知