首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我用shell脚本实现项目容器化自动部署

简介 本文主要用shell脚本实现的功能为: 代码更新 代码编译 镜像制作 容器启动 镜像推送 推送通知 有兴趣的童鞋千万不要错过哦~ 背景 之前我写了一篇文章《我的shell脚本实战-编写一个系统发布脚本...》,里面用shell脚本模拟了软件的发布,有兴趣的同学可以看看这篇文章: “我的shell脚本实战-编写一个系统发布脚本 ” 当时的发布思路是这样的 将代码拉取至主机A进行编译,然后将编译后的jar包分发到各发布服务器上并运行...脚本编写 我的脚本组成大概是这样的: docker部署 拉取代码 拉取代码就不用我说了吧,我们直接从gitlab上面拉取: #最初时候需要git clone代码 git pull 编译代码 我们使用...脚本整合 我们将上面的步骤整合到一个脚本中,来看看运行结果。 编译 备份发放 镜像制作,私服推送 最后我加上了钉钉机器人的消息推送通知,只要脚本执行成功,就会发放消息通知。...这里我是用脚本的原因是可以代码构建,镜像制作,容器启动,镜像推送一步完成,我们可以将脚本加入到定时任务中,实现定时执行: vi /etc/crontab 以上就是本篇的全部内容啦,如果对你有帮助,欢迎点赞

1.4K10

我应该拿什么来拯救你,我的游戏?

过程中大家也积极讨论了一些防破解的方法,在征得到大家的同意后,我将讨论的方案整理了出来,希望对正在做小游戏的开发者们有所帮助或启发,如果你有更好的方案也欢迎留言讨论。...3 彩蛋 ”彩蛋“方案是一位伙伴想起曾经莉莉丝的《刀塔传奇》反编译案提出来的,看下图: ?...在《Heroes Charge》的游戏中出现了《刀塔传奇》开发商莉莉丝游戏的商标,这显然并不正常。 彩蛋是不得已的最后一手,当我们的游戏发现已经被盗时,向平台提出申诉,彩蛋将是一个重要的申述证据。...因此个人开发者上线小游戏时,建议对代码进行混淆,以免被人拿到引擎直接输出的代码混淆后上线,他将有机会逃过相似度审查。 晓衡也是一名普通的个人开发者,深知个人开发者的艰辛。...游戏被盗,作为个人是很难与一些不良公司抗衡的,更重要的是它会极大地打击我们学习和创作的动力。上面介绍了三种保护游戏的方案,抛砖引玉,相信大家还有更多更好的方法,欢迎大家留言讨论或来公众号分享你的经验。

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    构建与部署的脚本化

    使用恰当的技术部署应用程序 在做自动化部署工作时,应该使用恰当的工具,而不是通用脚本语言(除非部署流程十分简单)。...使用同样的脚本向所有环境部署 “使用同样的脚本部署每个环境” 和 “环境配置信息的不同(比如服务URI或IP地址)”这两件事应该分开管理,即将配置信息从脚本中分离出来,并将其保存在版本控制库中,并用一些机制让部署脚本去获得这些信息...多层的部署和测试 对于软件交付或某个复杂系统的构建和部署,假如说有一个基础的核心原则的话,那就是应该总是把根基扎在已知状态良好的基础之上。...请时刻牢记最终目标,即在开发、测试和生产环境中共享同一种部署机制,但不要过早地纠结于工具的创建。 脚本应该贯穿应用程序的整个生命周期。...我们应该对这些脚本进行版本控制、维护、测试和重构,并且将其用作部署应用程序的唯一机制。

    33310

    写个简单的项目自动部署脚本

    一、概述 在项目数量比较大和构建流程比较复杂的场景,我们一般会使用jenkins以及衍生产品来实现构建打包部署能力,但对于一些简单的项目和小众场景,我们使用简单的脚本构建部署,也未必不是一个简单便捷和节省成本的选择...二、编写部署脚本 前边有介绍到通过脚本来部署应用程序,那么就需要目标服务器拥有执行相关拉取代码、编译、构建的能力,比如最基本的java运行环境、maven工具、git命令等,如果是借助docker启动服务...3.基于docker启动的部署脚本 有些项目团队喜欢使用docker启动java服务,那么我们同样可以将上述脚本稍做改造,来实现基于shell+docker的简单项目部署能力。...三、扩展 考虑到jenkins以及衍生产品处理提供完善的流程化的部署能力,也会提供详细的部署记录以及通知能力,我们也可以将脚本进行改造,来提供相应的能力,比如记录什么时间出发了打包部署,部署成功和失败的通知等...节省成本:jenkins部署项目时是比较吃服务器性能的,一般部署jenkins的服务器配置要比业务机器的配置高,使用脚本节省了部署jenkins的机器成本。

    43110

    与下属面谈,是我应该做的吗?

    了解这些情形后,吴波找了郭华,可郭华觉得效率应该是最需要追求的目标。所以他希望用最节省时间的方式,达到工作要求。 工作效率重要,但良好的沟通绝对会让工作进展更加良性循环。...作为管理者,我是否应该更多的和下属面对面交流呢?...,也更能达到目的,了解事情的情况,也便于情感的维护,便于加强团队的凝聚力;缺点:沟通时间成本高,需要有沟通的艺术,沟通点不全,无法事后查阅; 分析: 1.看性格 2.看场合 3.看性别 4.看优先级...5.看距离 6.看沟通渠道数 7.看信息的复杂度 8.看情商 总结: 根据沟通的目的,综合个人情况以及事件的复杂度,挑选不一样的沟通方式,没有所谓哪一种沟通方式比较多;但其实有时比较现实的就是职场无同事...,还要多多提高你的专业能力,通过专家能力来影响同事,会降低沟通的门槛。

    35610

    .NET牛人应该知道些什么,我的回答

    .NET牛人应该知道些什么 前些日子我发了一份ASP.NET面试题 清单. 有一些访客比较保守,觉得我是没事找事,里面都是些很琐碎的问题。...剩下的人则说“蛮不错的,我得去看一看其中的一些问题” 我更喜欢后者的回复,我觉得后者才是正确的态度。 当然我并不想把.NET软件开发概括为一些简单的小问题,我只是想让大家多思考。...我相信一个真正优秀的ASP.NET(及WinForm)开发人员应该不仅仅会拖放控件到设计器中,也应该掌握更多的东西。一个优秀的赛车比赛选手很了解他自己的坐驾,他知道哪些可以做?哪些不能做?...所以我准备了另外一份清单——一份扩展的清单,供你使用。这是我上个星期在从博伊西去波特兰的路上写在一块板上的,并且我也考虑到了那些觉得我的清单过于琐碎的意见,试图把这个清单按节管理。...(Catch的时候应该捕捉具体的Exception类型,而不是通用的Exception) Debug.Write和Trace.Write有什么不同?何时应该使用哪一个?

    40510

    我的shell脚本实战-编写一个系统发布脚本

    于是我决定使用shell写一个自动发布的脚本,既可以更熟悉发布流程,也可以学习shell语法。...发布脚本 发布脚本的主要功能见下图: 这个脚本主要要有:拉取代码,编译成jar,备份原程序,分发远程序,启动程序等功能。...因为有测试环境和正式环境,我在执行脚本的时候会在后面带一个参数pro或test,代表发布到不同的环境。 首先我们在两个环境各自相关的地址: 当输入的变量参数为test时,走test的路径。...最后我们启动应用主机的程序即可。 启动系统之前需要将原系统停掉,系统启动脚本在各自的应用系统中。 上图为启应用动脚本这里我们指定了启动的运行环境。...nohup xxx >/dev/null 2>&1 & 以上一个简单的发布脚本就实现了。 这里是后端的实现,前端也可以用同样的脚本,只要将编译的命令改成前端的编译命令即可。

    61020

    我对JS延迟异步脚本的思考

    关于对延迟脚本的思考 async和defer属性的脚本,相信大家都听说过,但是他的真正执行细节是什么样子的?...红宝书第四版出来后,我也是花了很多时间去看。对于延迟脚本,自己也是做了一个实验,写下了这篇总结 什么是延迟脚本?...,我发现defer永远都是最后下载的) image.png async和defer两种模式,区别在于: async是告诉浏览器,它不会操作dom,可以不必等到它下载解析完后再加载页面,也不用等它执行完后再执行其他脚本...他们都会在浏览器load事件前执行,但是不保证是在DomContentLoad事件前还是后执行 defer肯定在async后面执行,从我的实验结果和书上对它们对解析来看 影响多个异步脚本的执行顺序因素...应该考虑什么场景才使用,而不是滥用它 写在最后 纸上得来终觉浅,欲知此事要躬行,我写得也不一定对,如果你有问题或者更好的答案可以在下面参与讨论,我始终认为有争议和反对的声音是好事

    1.2K21

    我应该提交 vendor 目录中的依赖包吗

    vendor 目录(或者你安装依赖的其它目录)都应该被添加进 .gitignore/svn:ignore/等等。最好这么做,然后让所有开发人员使用 Composer 来安装依赖包。...同样的,对构建服务器,CI,部署工具等,应在编译构建的时候对项目进行修改修改,使运行 Composer 成为其项目引导的一部分。...在你自己的 VCS(代码管理工具) 中将产生与你依赖的资源包重复的历史记录。通过 git 的一个 git 仓库安装添加依赖,将把它们视作子模块。...这是有问题的,因为它们并不是真正的子模块,你的项目在运行的时候可能会出现问题。...通过上面的文字内容,我们知道在使用 Composer 项目的时候,我们不要把 vendor 中的内容也提交到代码管理库中,而应该使用 Composer 自己在运行的时候下载。

    13110

    NetSuite中国横行90%的高续约率 国内ERP厂商需警醒

    深圳松诺技术有限公司,作为一家前沿的智能家居设备供应商,致力于用物联网系统来为客户打造轻松。需要一款能够尽快上线的ERP来支持松诺的全球业务,部署快的Oracle NetSuite成为松诺的首要之选。...上海源品文化传媒有限公司仅3个月时间,就快速部署实施了Oracle NetSuite系统,开启企业内部对财务、进销存、库存的智能管理。...按理说,ERP是对企业有百利而无一害的事,应该受到所有的企业的热烈欢迎和拥护,但是在传统ERP时代不到30%的实施成功率,却让中国多数企业犹豫彷徨在ERP的大门前,无论是时间成本还是总体拥有成本,面对全球化竞争随需应变的管理系统已成为企业的必需...维多麦食品贸易(上海)有限公司中国区财务总监张思红认为:Oracle NetSuite凭借快速的部署优势、低佣有成本、出色的实施商业情报和报告能力等获得了维多麦的青睐。...通过三个月的部署实施就顺利完成了系统的上线,Oracle NetSuite不仅节省了一大笔本地化部署安装升级的费用,还整合了财务和业务的统一管理,实现了产品从采购到销售整个流程的及时追踪,对业务发展提速起到了很大的帮助

    94300

    面试官:集合使用时应该注意哪些问题?我:应该注意该注意的问题!

    写在开头 面试官:“小伙子,java的集合学过吗?” 我:“肯定学过呀!”,这时候的我自信满满,手撕集合八股文嘛,早已背的滚瓜烂熟了呀。...面试官:“那你来讲讲集合使用时,应该注意哪些问题吧” 我:“额,这,我想想哈。”,什么!这面试官不按套路出牌,上来就问注意事项,打我一个措手不及啊。...我:“嗯 ~,我觉得应该注意该注意的问题!” 面试官:“下一位!”...集合使用注意事项 经过了十几篇博客的总结,java集合部分的知识点,大致上就学完了,当然,Collection与Map拥有着大量的子集,我们无法通过短短的五六万字就可以全部讲解完,后续会持续性的完善,现阶段呢...集合判空 判空是集合在使用时必须要做的操作,我们得保证我们所创建的,或者所调用的别人创建的集合对象可用(不为null,不为空),才能进行下一步业务逻辑的开发。 那么,如何进行判空处理呢?

    7700

    你应该要掌握的34个运维常用Shell脚本!

    /bin/bash # 脚本生成一个 100 以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了, # 猜小了或猜大了,直至用户猜对脚本结束。.../bin/bash # 一键部署 memcached # 脚本用源码来安装 memcached 服务器 # 注意:如果软件的下载链接过期了,请更新 memcached 的下载链接 wget http.../bin/bash # 编写脚本:提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码。.../bin/bash # 通过位置变量创建Linux 系统账户及密码 # $1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数 useradd "$1" echo "$2" | passwd.../bin/bash # 一键部署 LNMP(RPM 包版本) # 使用 yum 安装部署 LNMP,需要提前配置好 yum 源,否则该脚本会失败 # 本脚本使用于 centos7.2 或 RHEL7.2

    1.7K20

    Confluence 6 应该如何在我的空间中组织内容

    页面和博客 你在 Confluence 中创建的任何内容,从会议记录到回顾和任何中间的内容,不管来源是博客和页面。 你的主页将是任何访问你网站中的用户首先看到的内容。...为了让用户更加容易的找到他们需要查找的内容,你需要使用一些宏来对你的主页进行规划,同时还需要在你的空间中包含一些有用的信息。...你的博客页面将会滚动显示到最老的内容。如果你的用户有兴趣查看的话,他们也能够查看到最老的内容。 如果你创建的内容是最新的,但是这些内容可能会随着之间的变化有所改动的话,你可以将这些内容创建为页面。...页面是可以嵌套的,因此每一个页面都可以有自己的子页面,这样可以让你将页面整理为分类或者子分类。 配置边栏 你可以对变量进行配置,这样有助于你的用户更好的在你的空间中导航访问内。...请访问 Configure the Sidebar  页面中的内容获得更多的信息。 在边栏中有关空间的的快捷链接部分将会链接你到重要的内容。

    89920

    我到底应该使用哪个 CRI 替换 kubernetes 集群的 Docker?

    /kubernetes-bare-metal/-/tree/dev/molecule/criBench 使用上面的脚本,执行 molecule converge 命令后,大概10分钟左右,我们就可以得到一个如下所示的...由于只是测试容器运行时,不是工作负载,所以这里我们只是简单的在集群中部署的一个 busybox 镜像并一直 sleep 的 DaemonSet 应用。...memory: 20Mi requests: cpu: 10m memory: 20Mi 该 DamonSet 将用唯一的名称进行部署...containerd 在所有指标上的表现都比较好,应该是最均衡的一个选择了。另外一方面,docker 并没有得到很好的测试结果,但是无论负载情况如何,它的表现基本上都是一致的。...在我看来,docker 仍然是让整个容器化向前发展的一个伟大工具。但是好像我还没有回答我最初的问题,那就是:我应该为我的k8s集群使用什么CRI?

    3.2K20

    一些我用得到的 Python 脚本

    下面的python脚本有一部分是我百度然后修改的,一部分是我自己写的,如果以后有什么新的我用的到的脚本或者这些脚本有修改我也会在这里更新,这些源码放在这里仅以备份为目的把图片上传到 sm.ms 图床...的情况下批量下载图片picdl.py# coding=utf-8 import requests filepath = 'E:/acg/acg/' #图片存放的地址i = 1 #将图片URL存放在 E:...def photo_classify(files_path): # 读取文件夹中所有文件的名称 files_list = os.listdir(files_path) # 循环文件夹中的所有文件...def photo_classify(files_path): # 读取文件夹中所有文件的名称 files_list = os.listdir(files_path) # 循环文件夹中的所有文件...这里有最专业的开发者&客户,能与产品人员亲密接触,专有的问题&需求反馈渠道,有一群志同道合的兄弟姐妹。来加入属于我们开发者的社群吧 。

    63950

    凶残的挖矿脚本,奴役我数千机器!

    大家好,又见面了,我是你们的朋友全栈君。 本文转载自不正经程序员 温馨提示:本文中出现的命令和脚本,不要在自家服务器上随便运行,除非你知道自己在做什么。...这样的漏洞有很多很多,数不胜数,比如它可以通过redis进入。我们不必关注这些漏洞,默认它已经利用成功了。我们只看挖矿脚本是怎么部署到你的机器上的。...这就是为什么要求你线上部署的应用,都用权限低一点的账户,比如xjjdog去运行,而不是不要命的把root账户给开放。 exec函数带了三个参数。...logic|bash 首先输出了一个全局环境变量,然后下载一个png文件 狡猾的人都喜欢带面具,而狡猾的脚本都喜欢改后缀。看起来是个png,但它是个脚本。 2. 脚本怎么安装的?...真正的脚本是什么? $RANDOM环境变量,是个神奇的环境变量。直接输出的话,将会得到一个随机值。cron脚本周期性的拉取最新的脚本执行,把真正的挖矿程序部署起来。

    1.2K40

    一键部署ceph集群的脚本

    您好,我是码农飞哥,本篇文章是Ceph实战专栏的第十一篇文章,前面的系列文章我们分别介绍了集群的部署,介绍了集群的组件,最后到介绍到Ceph的IO流程等等。...这一篇文章是结束之作,我将介绍一下重点介绍快速部署集群的脚本(PS:前面的部署脚本有点繁琐)。 订阅本专栏我会1V1的帮您解决部署和使用ceph时碰到的问题。...首先创建Ceph目录 2.上传启动脚本 总结 概述 Ceph实战(二)和Ceph实战(三)两篇文章中,我分别介绍了如何安装docker以及如何通过docker部署ceph集群,但是相关的部署脚本还不够精简...这一篇文章我将提供一套快速部署集群的脚本。让您可以使用该脚本对ceph集群进行一键部署。...脚本执行完成之后,启动正确的话,集群的状态应该是 HEALTH_OK。详细结果如下图所示: ? 主要是看各个组件是否都有显示。

    1.1K30

    我所喜欢的Big.One应该是这样的

    我从2016年8月从Okcoin买入了人生的第一笔比特币,当时的价格不到4000元。...10月之后,以前的交易所全部关停,买入BTC全部通过场外交易,价格比以前更高,新开的交易所只能进行币币交易,此时Big.one进入了我的视野。...在Bigone的当前版本中,我看到了几处不足,很可能它会在新的版本中全面改进: 1、界面沉闷 登录big.one之后,出现的是全黑的界面,可能为了保护视力,但让我久久无法适应。 ?...,它的配色太神奇了,我不贴近屏幕,几乎看不清楚上面的文字。...我的账户 我买入的币在哪呢?原来需要向下滚动这个窗口,此时看到了大量数字货币的代码和数量。 ? 数字资产列表 3、交易对呢?

    1.1K100
    领券