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

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

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

    比如我们是 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 17:17:57 +08:00
    你怎么更新能不中断服务,代码更新就没问题了吗,git pull ? 文件差异也是会短暂存在的。
    不如 docker swarm,2 个以上的容器滚动更新,可以更优雅的解决。
    herozzm
        8
    herozzm  
       2018-11-28 17:28:25 +08:00 via iPhone
    我是讲代码放在母鸡 然后共享给 php-fpm 和 nginx 共同使用更新貌似不存在什么问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1066 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:38 · PVG 03:38 · LAX 11:38 · JFK 14:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.