• .NET 微服务——CI/CD(4):避坑和一点经验 老马


    如果你看过之前几篇文章,应该已经Jenkins成功搭建了CICD环境,但是进入正式环境会有一些坑,不注意中招的话很难受,这里总结一下,避免重复消耗精力。

    后门漏洞

    Jenkins有后门,这是个老问题了。虽然早在18年就有人发现,而且当时Jenkins团队也快速打了补丁(2.137以后),但你下载的某些插件如果有漏洞(比如最近Log4j的大雷)也可能导致被黑。

    为了杜绝这个问题,我建议你做到这几点:

    1、升级Jenkins到最新稳定版(2021-12-01最新2.319.1)

    2、如果可以,不要把Jenkins服务器暴露在公网。可以选择个人电脑+花生壳。

    3、放通docker tcp端口时,不要放2376端口。

    4、不要在业务服务器上安装Jenkins。

    5、替换/删除掉可能出现问题的插件。

    6、SSH Server不要配置root账户。

    6、修改Jenkins授权:

    无用镜像

    通过Jenkins自动构建镜像后,会在Docker留下一个空镜像,大概700-800M左右,要命的是每构建一次就会多一个,多来几次服务器的磁盘就不够用了。。。。手动可以解决但不优雅,CICD嘛,必须全自动。

    增加构建步骤,通过SSH执行这段命令:

    echo "==========清理空镜像=========="
    clearImagesList=$(docker images -f "dangling=true" -q)
    if [ ! -n "$clearImagesList" ]; then
    echo "没有空镜像"
    else
    docker rmi $(docker images -f "dangling=true" -q)
    echo "空镜像已清理"
    fi

    如果你选择上传镜像到阿里云仓库(或其他云仓库),还会留下一个tag镜像和原镜像,也可以在构建步骤中删除:

    echo "==========清理镜像=========="
    docker rmi -f mydotnet6
    docker rmi registry.cn-shenzhen.aliyuncs.com/命名空间/仓库名:版本号

    硬件配置

    根据实践经验,建议Jenkins所在服务器至少拥有2核4GB的配置,低于这个配置时,构建过程可能会十分缓慢,会导致它经常弹出异常错误。

    私服镜像仓库

    Jenkins默认支持Harbor,非常简单但需要你先搭建好Harbor。通过这种方式上传可以勾选“清理本地镜像”:

    其他的小细节不再赘述,进入生产环境后大家都会有自己的经验。欢迎讨论。

    如果你现在还没有利用Jenkins搭建过CICD环境,建议你查看前几篇文章。

    声明:未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
    本文原创发表于博客园,作者为暮城倾心。欢迎转载。Donation(扫码支持作者)↓

    微信
    支付宝
  • 相关阅读:
    创业日记-时间过的也快也慢
    通过获取客户端Json数据字符串,反序列化为实体对象的一段代码
    Sandcastle是什么
    使用VisualSVN Server自动发布站点
    Microsoft Visual Studio Ultimate 2015 Preview使用笔记
    俞敏洪:自卑比狂妄更糟糕
    灰度发布
    TLV格式是什么格式
    zend studion实现自动换行
    数字格式化,从右往左每隔三位加逗号的四种方法
  • 原文地址:https://www.cnblogs.com/muchengqingxin/p/15775635.html
Copyright © 2020-2023  润新知