All posts by 龙生

SpringBoot 部署 docker 打包镜像

环境: 1、代码编写工具:IDEA 2、打包:maven 3、docker 4、linux 7、JDK1.8 8、Xshell 9、Xftp 第一步:使用idea创建简单的springboot项目 第二步:设置项目生成jar包(两种方式) 1、修改pom文件

2、或者在生成项目的时候 可以选择jar和war 第三步:使用maven 生成包 (使用idea不用命令 直接界面操作就可以(如果Maven设置没问题 直接就可以生成 包 log会提示生成后的文件目录))   第四步:docker概念 1、docker:最早是dotCloud公司出品的一套容器管理工具,但后来Docker慢慢火起来了,连公司名字都从dotCloud改成Docker。 2、dockerfile:它是Docker镜像的描述文件,可以理解成火箭发射的A、B、C、D……的步骤。 3、docker镜像:通过Dockerfile做出来的,包含操作系统基础文件和软件运行环境,它使用分层的存储方式。 4、docker容器:是运行起来的镜像,简单理解,Docker镜像相当于程序,容器相当于进程。 第四步:dockerfile指令 Dockerfile由多条指令组成,每条指令在编译镜像时执行相应的程序完成某些功能,由指令+参数组成,以逗号分隔,#作为注释起始符,虽说指令不区分大小写,但是一般指令使用大些,参数使用小写 第五步:dockerfile文件例子(我只是简单将springboot项目生成docker镜像没有什么多余配置) TODO:有一点需要注意的地方就是dockerfile文件没有任何后缀

第六步:将dockerfile文件和生成好的jar 使用ftp工具上传到linux服务器 随便找个文件夹 放进去 jar和dockerfile在同级目录下 第七步:使用 docker build -t ordinary:v1.0 . TODO: 1、 最后面的这个 . 代表在当前目录下面寻找 dockerfile 文件 2、ordinary 镜像名字 3、v1.0版本 第八步:查看镜像及启动 1、使用docker images 来查看生成的镜像 2、使用docker create 来创建容器 docker run 来创建并且运行容器 3、也可以使用docker logs 容器名 --tail 100 -f 来查看项目启动日志 看项目是否启动 3、如果上面步骤一切正常 可以直接调用IP加端口来访问项目 通过Docker run命令定义Spring Profile 可以将spring profile作为环境变量传递给docker run命令,使用 -e 标记。 例如 -e “SPRING_PROFILES_ACTIVE=dev”会将dev profile传递给Docker容器 docker run -d -p 8080:8080 -e "SPRING_PROFILES_ACTIVE=dev" […]

龙生   01 Jul 2021
View Details

Docker部署SpringBoot项目

1.创建springboot项目   创建springboot项目

  2.打包springboot项目为jar包 3. 编写Dockerfile文件

  解释下这个配置文件: VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。该步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录 项目的 jar 文件作为 “app.jar” 添加到容器的 ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/./urandom” 作为 Entropy Source 如果是第一次打包,它会自动下载java 8的镜像作为基础镜像,以后再制作镜像的时候就不会再下载了。 4. 部署文件 在服务器新建一个docker文件夹,将maven打包好的jar包和Dockerfile文件复制到服务器的docker文件夹下 docker文件夹 5. 制作镜像 执行下面命令, 看好,最后面有个"."点!

  -t 参数是指定此镜像的tag名 制作完成后通过docker images命令查看我们制作的镜像 6.启动容器

  7. 访问网站 直接浏览器访问: http://你的服务器ip地址:8080/ 好了,下一步就是学习springboot+mysql+redis如何在docker上如何部署了。 作者:雄关漫道从头越 链接:https://www.jianshu.com/p/397929dbc27d 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

龙生   01 Jul 2021
View Details

Git远程仓库地址变更本地如何修改

公司搬移, 作为git仓库的服务器IP地址变了。 本地代码挺多,重新检出太占时间,可以修改一个什么配置让我本地仓库和新的远程仓库建立关联吗, 答案是肯定的! 方法有很多,这里简单介绍几种: 以下均以项目git_test为例: 老地址:http://192.168.1.12:9797/john/git_test.git 新地址:http://192.168.100.235:9797/john/git_test.git 远程仓库名称: origin   方法一 通过命令直接修改远程地址 进入git_test根目录 git remote 查看所有远程仓库, git remote xxx 查看指定远程仓库地址 git remote set-url origin http://192.168.100.235:9797/john/git_test.git     方法二 通过命令先删除再添加远程仓库 1.进入git_test根目录 2.git remote 查看所有远程仓库, git remote xxx 查看指定远程仓库地址 3.git remote rm origin 4.git remote add origin http://192.168.100.235:9797/john/git_test.git     方法三 直接修改配置文件 进入git_test/.git vim config

修改 [remote “origin”]下面的url即可 方法四 通过第三方git客户端修改。 以SourceTree为例,点击 仓库 -> 仓库配置 -> 远程仓库 即可管理此项目中配置的所有远程仓库, 而且这个界面最下方还可以点击编辑配置文件,同样可以完成方法三。 原文链接:https://blog.csdn.net/asdfsfsdgdfgh/article/details/54981823 from:https://www.cnblogs.com/vickystudy/p/11505936.html

龙生   30 Jun 2021
View Details

大批量更新数据mysql批量更新的四种方法

mysql 批量更新如果一条条去更新效率是相当的慢, 循环一条一条的更新记录,一条记录update一次,这样性能很差,也很容易造成阻塞。 mysql 批量更新共有以下四种办法 1、.replace into 批量更新

  2、insert into …on duplicate key update批量更新

  3.创建临时表,先更新临时表,然后从临时表中update

  注意:这种方法需要用户有temporary 表的create 权限。 4、使用mysql 自带的语句构建批量更新 mysql 实现批量 可以用点小技巧来实现:

  这句sql 的意思是,更新orderId 字段,如果id=1 则orderId 的值为3,如果id=2 则orderId 的值为4…… where部分不影响代码的执行,但是会提高sql执行的效率。确保sql语句仅执行需要修改的行数,这里只有3条数据进行更新,而where子句确保只有3行数据执行。 如果更新多个值的话,只需要稍加修改:

  到这里,已经完成一条mysql语句更新多条记录了。 php中用数组形式赋值批量更新的代码:

  这个例子,有8条记录进行更新。代码也很容易理解,你学会了吗 更新 100000条数据的性能就测试结果来看,测试当时使用replace into性能较好。 replace into 和 insert into on duplicate key update的不同在于: replace into 操作本质是对重复的记录先delete 后insert,如果更新的字段不全会将缺失的字段置为缺省值,用这个要悠着点否则不小心清空大量数据可不是闹着玩的。 insert into 则是只update重复记录,不会改变其它字段。   from:https://www.cnblogs.com/mslagee/p/6509682.html

龙生   30 Jun 2021
View Details

MySQLHelper/Util类

 

龙生   30 Jun 2021
View Details

检测到有潜在危险的 Request.Form 值

这种问题是因为你提交的Form中有HTML字符串,例如你在TextBox中输入了html标签,或者在页面中使用了HtmlEditor组件等,解决办法是禁用validateRequest。 如果你是.net 4.0或更高版本,一定要看方法3。 此方法在asp.net webForm和MVC中均适用 方法1: 在.aspx文件头中加入这句:

  方法2: 修改web.config文件:

因为validateRequest默认值为true。只要设为false即可。   方法3: web.config里面加上

因为4.0的验证在HTTP的BeginRequest前启用,因此,请求的验证适用于所有ASP.NET资源,aspx页面,ashx页面,Web服务和一些HTTP处理程序等.   from:https://www.cnblogs.com/youring2/p/3559781.html

龙生   29 Jun 2021
View Details

正则表达式匹配最后一部分

今天,同事问了我一个正则,最后解决了,给大家提供一下参考。用于取网址的最后一部分。本文用于讲解(?= 和 ?<= 和 ?>=和 ?! 的用法) 数据如下: https://download.microsoft.com/download/5/3/8/5388ECC4-C2E2-4D40-8C21-D1EA26FEA0CA/msodll40ui2016-kb4018324-fullfile-x86-glb.exe https://download.microsoft.com/download/B/2/5/B25D200D-804D-44B9-A345-9D1A21386470/osetup2010-kb4022208-fullfile-x86-glb.exe https://download.microsoft.com/download/6/7/0/6703678B-8270-41ED-B16B-5F7D08D05A84/osetup2010-kb4022208-fullfile-x64-glb.exe https://download.microsoft.com/download/6/B/1/6B1BD3F3-A8CC-44BA-86EF-E85A0E066E33/ose2010-kb4022206-fullfile-x86-glb.exe https://download.microsoft.com/download/9/0/1/901D9393-AB8E-4018-BF2D-78341A0B60BE/ose2010-kb4022206-fullfile-x64-glb.exe 通过如下正则可以匹配 / 之后的部分:[^/]+(?!.*exe) 匹配到的数据如下: msodll40ui2016-kb4018324-fullfile-x86-glb.exe osetup2010-kb4022208-fullfile-x86-glb.exe osetup2010-kb4022208-fullfile-x64-glb.exe ose2010-kb4022206-fullfile-x86-glb.exe ose2010-kb4022206-fullfile-x64-glb.exe 说明: [^/]+ 表示匹配任意长度的字符串,字符串中不包含有字符 / ,就可以把以 / 分割开的字符串全匹配到. .*exe 表示任意以exe 结尾的字符串,可以把后在带有exe的字符串匹配到,前面再加上?!,再用圆括号包住表示排除掉(?!.*exe) 整个表达式的意思就是匹配任意长度的不包含/ 的字符串,并把以exe结尾的字符串匹配出来。 举个例子进行讲解: 有个字符串如下 str = "程序人生 程序 人生 序人" 我们想匹配字符串里"程序人生"的"人"字而不要其他的"人"字,这时就需要用到前瞻后顾。 正则表达式如下: (?<=程序)人(?=生) 反过来,我们不想要"程序人生"的"人"字,但是想要其他"人"字。这时就要用到负前瞻,负后顾 正则表达式如下: (?<!程序)人(?!生) 总结一下: 前瞻: exp1(?=exp2)     查找exp2前面的exp1 后顾:  (?<=exp2)exp1   查找exp2后面的exp1 负前瞻:  exp1(?=exp2)     查找后面不是exp2的exp1 负后顾:  (?<=exp2)exp1   查找前面不是exp2的exp1 可以发现,负前瞻、负后顾就是把前瞻、后顾中的"="改成了"!" 注意:后顾功能在大多数语言中有长度限制,只能使用定长的表达式,像\w+和\d 这样的表达式长度可变,不能用在后顾中 备注:最近太忙,看半天也没有真正理解,先记录一下,回头有空再看。 ———————————————— 版权声明:本文为CSDN博主「白夜鬼魅」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/shuryuu/article/details/82910857

龙生   29 Jun 2021
View Details

一个项目设置两个Git地址,实现同时推送到两个Git仓库

方法一 直接给git仓库添加Origin时,可以实现推送到两个仓库,但是需要推送两次,还是记录一下 在已有Git仓库的项目中gitA中添加另一个gitB远端的地址

  先拉取gitB地址的数据

  把gitA中的内容推送到gitB的地址中

  至此,我们可以通过推送两次的方法,将一个项目提交到两个git地址了

  但是略繁琐,所以我们通常使用方法2,操作方法2的时候,注意清掉上方操作,删除上面写好的gitB 的远端地址

  方法二 给origin 增加一个可以push的地址

  至此,我们就可以直接一个push,同时推送到两个git地址。

  这样一份代码就可以提交到两个git仓库上了 注意:如果需要删除

    方法三 可以通过直接修改 .git\config文件 原内容如下

  我们需要添加一个新的remote节点和branch节点就可以实现一次推送更改两个仓库。 添加后

  ———————————————— 版权声明:本文为CSDN博主「CXLiao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/CXLiao/article/details/105286752

龙生   27 Jun 2021
View Details

log4net独立文件配置

🥝 NuGet引用log4net 🥝 Configs文件夹下创建log4net.config

  🥝 AssemblyInfo.cs文件下添加

  🥝 类中引用

 

龙生   25 Jun 2021
View Details
1 82 83 84 410