334862132
V2EX  ›  Docker

docker 镜像如何让启动的时候不执行 shell 脚本

  •  
  •   334862132 · Feb 19, 2020 · 5825 views
    This topic created in 2461 days ago, the information mentioned may be changed or developed.
    我有一个镜像,因为业务变动需要迁移,但是这个镜像打包后在新服务器上启动后会自动启动一个 shell 脚本 脚本启动失败了容器就自动关闭了,有没有什么办法能让 docker 容器在启动后不执行 shell 脚本


    docker ps -a 里面 容器 写着 COMMAND sh /var/www/app/run.sh 就是开启容器后自动执行这个脚本
    我尝试修改 config.v2.json 文件里面把 "Args":["/var/www/app/run.sh"], "Cmd":["sh","/var/www/app/run.sh"]俩个都删掉
    之后 hostconfig.json 文件 "Name": "no",改成 always
    没有用,启动后依然执行 shell 脚本,并且在执行后 config.v2.json 和 hostconfig.json 俩个文件又恢复成原来的样子
    6 replies  •  2020-02-20 13:10:45 +08:00
    d5
    d5
    Feb 19, 2020❤️1
    1
    可以停止容器后,直接 /var/lib/docker/<容器卷 id>进去找到最新可写层那个文件夹,进去改。
    334862132
    334862132
    OP
    Feb 19, 2020
    2
    @d5 我改的就是这个
    容器卷里面有这些文件
    checkpoints config.v2.json hostconfig.json hostname hosts resolv.conf resolv.conf.hash secrets shm
    过去改映射端口时候改 hostconfig.json config.v2.json 俩个文件把映射端口改一下就行了,但是现在的启动项在
    config.v2.json 文件面 有 "Args":["/var/www/app/run.sh"], "Cmd":["sh","/var/www/app/run.sh"] 俩个内容是关于 shell 脚本的 我都删了后 重新启动容器依然在执行 shell 脚本..
    然后回去再打开一下 config.v2.json 文件 发现删掉的文件又还原了
    这一排里面所有的文件我都看了 没找到其他地方还有写这脚本的地方
    iUnix
    iUnix
    Feb 19, 2020 via Android❤️1
    3
    为什么不重新 build ?
    不重新 build 的话指定运行的 command 就行了
    singerll
    singerll
    Feb 19, 2020 via Android❤️1
    4
    把脚本内容改了试试?
    334862132
    334862132
    OP
    Feb 19, 2020
    5
    @singerll
    谢了,我当时也是这想法,实在不行重搭一个 反正代码都有就是从配环境麻烦点
    不过刚我把容器删了 之后用镜像启动位置用 /bin/sh 启动后就不自动执行脚本了 上一次构建容器时候用的 /bin/bash
    没想到这玩意还有影响....
    aaronchen2016
    aaronchen2016
    Feb 20, 2020 via Android❤️1
    6
    外挂 volume 将那几个脚本覆盖
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1028 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 18:14 · PVG 02:14 · LAX 10:14 · JFK 13:14
    ♥ Do have faith in what you're doing.