V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
daijinming
V2EX  ›  程序员

求教脚本更新 docker 中的应用的方法

  •  
  •   daijinming · 2018-10-17 17:21:53 +08:00 · 2911 次点击
    这是一个创建于 2230 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前我写过一个 API 服务,代码托管在 github 上,让后写了个 Dockerfile,用来构建镜像

    FROM microsoft/dotnet MAINTAINER [email protected] RUN apt-get update && apt-get install -y
    git RUN git clone -q https://github.com/dockersample/webapi.git WORKDIR webapi/ RUN dotnet restore EXPOSE 5000

    CMD ["dotnet","run"]

    [更多详情参看: https://www.jianshu.com/p/13c7f5cfc4a1 ] 现在我考虑能不能采用简单的脚本方式更新 Docker 中的应用,比如我修改代码,然后提交到 github 上,这时再运行这个脚本,重新构建镜像,更新之前的镜像,重新启动新的镜像容器,完成更新.

    网上很多资料用 gitlab,jenkin 的方式感觉有点复杂,所以寻求一个简单的方式处理

    9 条回复    2018-10-18 17:50:29 +08:00
    sarices
        1
    sarices  
       2018-10-17 17:33:34 +08:00
    github 提供了 webhook 啊,自己写一个服务在服务器上面响应这个 webhook 就好了
    sarices
        2
    sarices  
       2018-10-17 17:34:38 +08:00
    github-webhook-handler 了解一下
    daijinming
        3
    daijinming  
    OP
       2018-10-17 17:42:03 +08:00
    @sarices 哥们你说的这个有道理,我考虑是这样的一个是您说的这个方式,另外一个就是我手动运行脚本。这里我也是想大家征集下这个服务中执行的脚本该如何处理?
    alixali
        4
    alixali  
       2018-10-17 18:00:46 +08:00
    这样可能需要重新编写 docker-compose 文件,,在启动空 docker 镜像的时候执行 sh 脚本,去拉去代码并编译,然后生成新镜像。个人感觉可行,这样的话就给自己生成一大堆的中间版本镜像。
    gaius
        5
    gaius  
       2018-10-17 18:02:50 +08:00
    git pull 打包 关服务器 删应用 复制 启动服务器
    cy97cool
        6
    cy97cool  
       2018-10-17 19:03:52 +08:00   ❤️ 1
    提个小建议 真的有必要更新容器镜像嘛?容器挂载主机的代码目录,主机收到通知 pull 代码后直接重启容器即可
    如果代码支持热重载(比如 uwsgi 的应用) 主机 docker exec 让容器重新加载即可 对业务造成的影响更小了
    没必要每次都浪费时间和 CPU 去 build
    daijinming
        7
    daijinming  
    OP
       2018-10-18 10:19:36 +08:00
    @cy97cool 您的这个思路我非常暂停,我也在探索如何处理处理这个问题,在 docker 这方面我还是新接触,具体如何处理还是比较费劲,如果容器仅恢复环境,代码存储在外部磁盘,比如在.net 环境下我改如何构建那?在使用 Dockerfile 创建镜像的时候,如果没有代码该如何处理,需要借助中间件吗?
    daijinming
        8
    daijinming  
    OP
       2018-10-18 17:23:56 +08:00   ❤️ 1
    @cy97cool 根据您的意见我写个博文,有空看看,提点建议 https://www.jianshu.com/p/49be41782408
    shylockhg
        9
    shylockhg  
       2018-10-18 17:50:29 +08:00
    travis-ci
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   933 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:41 · PVG 06:41 · LAX 14:41 · JFK 17:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.