在宿主机或jenkins执行docker容器内部的脚本或命令
常见的一些格式:docker exec -it DockerID /bin/bash -c 'echo $PATH'docker exec -it DockerID /bin/bash -c 'cd /home/docker/shell && ./test.sh'shell脚本中涉及到环境变量,或者提示JAVA_HOME is not set,可以在脚本中加上...
常见的一些格式:
docker exec -it DockerID /bin/bash -c 'echo $PATH'
docker exec -it DockerID /bin/bash -c 'cd /home/docker/shell && ./test.sh'
shell脚本中涉及到环境变量,或者提示JAVA_HOME is not set,可以在脚本中加上以下命令
export JAVA_HOME=jdk路径
现在 我们需要在Jenkins里面配置自动发布,如果docker容器中有个start.sh脚本 或者执行python3 test.py这些则可用上面的常见方式填写到Jenkins的SSH发布框中。
发布新代码,让跑起来之前肯定要停止以前的 杀掉旧进程的方式为
docker exec -it DockerID /bin/bash -c 'ps -ef | grep test |cut -c 9-15 |xargs kill -9 '
DockerID:是你的容器名字或者容器ID都可以
grep test: 含有test进程
cut -c 9-15:截取行的9字符至15字符 ,刚好是进程的PID
"xargs kill -9" 中的 xargs 命令是用来把前面命令的输出结果(PID)作为"kill -9"命令的参数,并执行该命令。"kill -9"会强行杀掉指定进程。
因为linux下批量杀掉包含某个字的进程还有一种方式 这种在docker中使用比较麻烦 awk之后的单双引号需要读者们研究一下
ps -ef |grep test|awk '{print $1}'|xargs kill -9
这种因为docker中需要在-c后面加入单引号,所以会和awk之后单引号冲突 所以读者们需要使用此方式的话需要研究一下这里的单双引号的冲突问题
更多推荐
所有评论(0)