• 请不要在回答技术问题时复制粘贴 AI 生成的内容
daijinming
V2EX  ›  程序员

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

  •  
  •   daijinming · Oct 17, 2018 · 3399 views
    This topic created in 2806 days ago, the information mentioned may be changed or developed.

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