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

WEB 项目是仅把 LAMP 运行环境放入 Docker,还是连同代码一起放入 Docker?

  •  
  •   nikoo · 2018 年 11 月 28 日 · 3510 次点击
    这是一个创建于 2615 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果仅放运行环境,更新代码是要进入 Docker 容器手动更新?
    如果全部放入 Docker,意味着每次更新需要暂时中断服务?(因为要更新 /重启容器)
    8 条回复    2018-11-28 17:28:25 +08:00
    swulling
        1
    swulling  
       2018 年 11 月 28 日 via iPhone   ❤️ 1
    创建两个或者多个容器,依次升级即可
    yuikns
        2
    yuikns  
       2018 年 11 月 28 日   ❤️ 1
    1. docker-compose 组织多个容器
    2. 不是,recreate 是先启动另一个顶掉之前那个
    nikoo
        3
    nikoo  
    OP
       2018 年 11 月 28 日
    @swulling @yuikns 谢谢,是想问合理的做法应为仅运行环境还是连代码一起放进去。
    Seanfuck
        4
    Seanfuck  
       2018 年 11 月 28 日
    貌似需要 3 个容器;代码是映射过去?
    alex321
        5
    alex321  
       2018 年 11 月 28 日   ❤️ 1
    最近刚好在学习这个,建议后者。
    如果要走前者,至少分开两套代码,用 -v 或者 docker-compose.yml 指派目录。更新的时候起新的环境 docker 和代码,Nginx 增加新 docker 服务 reload,移除停旧版。
    yuikns
        6
    yuikns  
       2018 年 11 月 28 日
    看情况。

    比如我们是 go 写的。玩了提交到 git,然后 ci 收到 trigger 后开始 build image。然后直接 push 到线上。因为有编译过程,并且顺便加以测试,那么对我而言最方便的方法就是写个 dockerfile

    FROM golang:1.11 as builder

    COPY . /go/src/some/path

    RUN build-scripts.sh
    ...
    FROM scratch

    COPY --from=builder /go/src/some/path/my-bin /my-bin

    CMD ["/my-bin"]

    然后丢 k8s 或者放哪里都很方便。

    但是这会有一点延迟。

    要是是纯 php,其实只需要容器加代码就好。

    那么就把 php-fpm 事先 build 好基础环境,然后 docker-compose.yml 里面用 volumes 即可,如下:

    version: '3'

    services:
    php:
    image: php:7.2-apache
    ports:
    - 8088:80
    volumes:
    - ./local-src:/var/www/html
    Vogan
        7
    Vogan  
       2018 年 11 月 28 日
    你怎么更新能不中断服务,代码更新就没问题了吗,git pull ? 文件差异也是会短暂存在的。
    不如 docker swarm,2 个以上的容器滚动更新,可以更优雅的解决。
    herozzm
        8
    herozzm  
       2018 年 11 月 28 日 via iPhone
    我是讲代码放在母鸡 然后共享给 php-fpm 和 nginx 共同使用更新貌似不存在什么问题
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   4932 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 01:17 · PVG 09:17 · LAX 17:17 · JFK 20:17
    ♥ Do have faith in what you're doing.