首页 > 其他分享 >实现脚本自动部署docker

实现脚本自动部署docker

时间:2023-10-10 14:56:47浏览次数:38  
标签:脚本 bin 部署 xx usr opt docker local

前言:

  使用场景是 我这边的一个单体项目需要多一个多副本的部署方式,一直输入重复命令我实在是嫌烦了,使用写了一个脚本来一键更新部署上去。jar包都是我手动上传的,没有把包传入公网库里。

 之所以记录就是因为遇到了几个没有遇到过的问题记录以下。

 示例:

#!/bin/bash # 进入指定文件夹打包成image cd /soft/xx/xx/ # 停止和删除包含 "mobile" 在名称中的容器 docker ps | grep "mobile" | awk '{print $1}' | xargs docker stop docker rm m1 docker rm m2 docker rm m3 # 构建 Docker 镜像并获取其 ID IMAGE_ID=$(docker build -t xxx:Tag . -q) # 使用镜像 ID 运行 Docker 容器 docker run -d -p 0001:8080 --name mobile2 -v /opt/xx/:/opt/xx/ $IMAGE_ID docker run -d -p 0002:8080 --name mobile1 -v /opt/xx/:/opt/xx/ $IMAGE_ID docker run -d -p 0003:8080 --name mobile3 -v /opt/xx/:/opt/xx/ $IMAGE_ID   省略每次输入 chmod +x script 这个命令,可以将脚本复制到一个在系统 PATH 中的目录中,这样就可以在任何地方执行它,而无需添加 ./ 前缀或手动更改权限。 可以将脚本复制到 /usr/local/bin/ 目录中:   sudo cp 脚本文件名 /usr/local/bin/   然后就可以在任何地方都只需要输入 脚本名称就可以执行。

错误一:-bash: /usr/local/bin/runpoject: Permission denied 没有权限的命令

这个错误是由于权限问题引起的,它表示你没有足够的权限来执行 /usr/local/bin/runpoject 脚本。这是因为 /usr/local/bin 目录通常需要超级用户权限才能写入。

你可以尝试以下步骤来解决这个问题:

使用尝试使用以下命令:

 sudo chmod +x /usr/local/bin/script

错误二:-bash: /usr/local/bin/runpoject: /bin/bash^M: bad interpreter: No such file or directory 转义符的原因 这个错误消息表明你的脚本文件包含了 Windows 风格的换行符(\r\n),而不是 Linux 风格的换行符(\n)。这种问题可能会导致解释器无法找到正确的路径。

要解决这个问题,你可以使用文本编辑器将脚本文件转换为 Linux 风格的换行符。

你可以使用 dos2unix 命令来进行转换,如果系统没有安装这个命令,可以尝试使用 sed 命令来进行转换,如下所示:

sed -i 's/\r$//' /usr/local/bin/script

亲测可以解决问题。

标签:脚本,bin,部署,xx,usr,opt,docker,local
From: https://www.cnblogs.com/del-x/p/17754666.html

相关文章

  • docker部署netbox 中部分汉化配置
    1.复制容器中关于汉化配置的文件到本地dockercpc99ddcb:/opt/netbox/netbox/netbox/navigation/menu.py.2.修改menu.py配置,修改为汉化之后的配置文件具体内容如下参考配置为:https://songxwn.com/netbox/fromdjango.utils.translationimportgettextas_fromnetbox.re......
  • rsa 公共模数攻击脚本
    '''rsa3-->c1,c2,e1,e2公共模数攻击'''fromCrypto.Util.numberimport*importgmpy2'''c1=pow(m,e1,N)c2=pow(m,e2,N)''''''m=pow(c1,d1,N)m=pow(c2,d2,N)'''c1=......
  • rsa dp泄露脚本
    已知c,e,n,dp求m(dp=d%(p-1))importgmpy2fromCrypto.Util.numberimport*n=dp=c=e=tmp=e*dp-1#根据联立条件有:e*dp=1+k(p-1),故求解p的式子为:(p-1)=(e*dp-1)/kforkinrange(1,e):#因为K上限只到e,故遍历求解iftmp%k==0:#验证(p-1)是否为整除结果......
  • rsa 最常规模板脚本
    已知c,e,n求m(n能分解p,q)importgmpy2fromCrypto.Util.numberimport*c=e=n=n=p*q#yafufactordb.com分解np= q= phi=(p-1)*(q-1)d=gmpy2.invert(e,phi)m=gmpy2.powmod(c,d,n)print(long_to_bytes(m))......
  • 【2023年10月10日】STF61_docker_Day01(上午)
     STF61_docker_Day01(上午)1. 什么是docker?docker类似于VMware软件,也能虚拟出来很多的系统,虚拟出来的系统不叫虚拟机,叫容器。docker:linux系统上的虚拟机2. docker和传统虚拟机的区别VM:使用VMware提供虚拟机的运行平台,管理每个VM中操作系统的运行。每个VM都有自己......
  • zabbix6.0一键安装脚本
    ......
  • 定时备份mysql脚本
    定时备份mysql指定数据库脚本,保留60天#!/bin/bash#pathcd/opt/pmo/mysql_datatarget_directory="/opt/pmo/mysql_data"#gettimenowcurrent_time=$(date+%s)#cal22monthsagobefore_time=$(date-d"60daysago"+%s)file_name=metersphere_`date+......
  • shell_脚本开发_数值运算_bc_awk
    bc命令bc命令是当作计算器的来用的,并且当作命令行来的,一般结合管道符使用(相当于echo把字符打印出来传递给bc处理)[root@localhosttmp]#bc###直接输入bc可开启一个计算器的功能bc1.06.95Copyright1991-1994,1997,1998,2000,2004,2006FreeSoftwareFoundation,Inc.......
  • shell_脚本开发_数值运算
    shell中的数值运算shell中常见的算术运算符运算符意义(*表示常用)+、-加号(正号)、减号(负号)**、/、%乘号、除号、取余(取模)***幂运算*++、--增加及减少,可前置也可放在变量结尾*!、&&、||逻辑非(取反)、逻辑与(and)、逻辑或(or)*<、<=、>、>=比......
  • shell_脚本开发_数值运算_expr命令
    expr命令简单的计算器执行命令可以用expr--help查看文档#expr是以传入参数的形式进行计算的,它基于空格传入参数,但是在shell里的一些元字符(*啊这类)都是有特俗含义的,需要转义[root@localhost~]#expr2+57[root@localhost~]#expr2*5expr:语法错误[root@localh......