V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
solomaster
V2EX  ›  问与答

请问 vagrant 或 docker 可以满足 我随处开发随处部署的需求么?

  •  
  •   solomaster · 2016-03-16 22:56:34 +08:00 · 3197 次点击
    这是一个创建于 3173 天前的主题,其中的信息可能已经有所发展或是发生改变。
    言简意赅的问:
    1 :我可能会 先后 在 windows 和 mac , ubuntu 等环境下用 eclipse 开发 java web 应用网站和后端服务。
    2 :我可能会先后部署在不同的 vps 和云上, linux 发行版本可能是 centos6 , centos7 , ubuntu , fedora 等等
    3 :我只想配置 一次 开发环境和线上环境,之后要到不同的环境开发和部署,只需要简单的复制就行,最好几分钟就可以搞定。

    查了下 vagrant 和 docker 这两货,不是很确定是否满足,还没花时间试水。请教下用过的朋友。
    20 条回复    2016-03-18 08:42:59 +08:00
    holyghost
        1
    holyghost  
       2016-03-16 23:01:36 +08:00
    docker + PHP 是没问题的。从我已知的、有限的 java web 开发经验来看,你说的这三点应该问题不大。
    motecshine
        2
    motecshine  
       2016-03-16 23:31:06 +08:00 via Android   ❤️ 1
    vagrant 开发环境
    xuhaoyangx
        3
    xuhaoyangx  
       2016-03-17 01:52:15 +08:00
    docker 可以满足
    cxbig
        4
    cxbig  
       2016-03-17 05:07:17 +08:00
    都可以,准备好自动部署代码,保证 VPN 畅通就好。
    lightening
        5
    lightening  
       2016-03-17 05:48:47 +08:00
    @holyghost
    @xuhaoyangx
    请问你们的 docker 开发环境是如何搭建的?我一直尝试 Docker 开发环境,总是找不到特别好的方案。
    loading
        6
    loading  
       2016-03-17 06:56:13 +08:00 via Android
    docker 主要用于部署


    环境还是 vagrant 比较好
    halfbloodrock
        7
    halfbloodrock  
       2016-03-17 07:36:42 +08:00
    同时用

    你用 vagrant 构建出一个基本的 vm 环境,在这个 vm 里跑 docker ,你的 code run 在这个 vm 的 docker 里。这样就满足你多个平台可以统一开发, code 利用 docker 直接部署到生产环境。
    caixiexin
        8
    caixiexin  
       2016-03-17 07:49:46 +08:00 via Android
    7 楼正解。。。
    icybee
        9
    icybee  
       2016-03-17 08:33:30 +08:00   ❤️ 1
    @lightening daocloud 曲线救国
    Nixus
        10
    Nixus  
       2016-03-17 08:50:13 +08:00
    @icybee daocloud 不是很易用→_→
    holyghost
        11
    holyghost  
       2016-03-17 11:46:20 +08:00 via iPhone   ❤️ 1
    crysislinux
        12
    crysislinux  
       2016-03-17 17:01:29 +08:00
    如果用的 linux ,哪个都可以。
    如果用的 windows 或者 mac ,如果项目文件比较多的话( java 不了解,但是 node 项目 node_modules 很多小文件),磁盘性能会非常差
    lightening
        13
    lightening  
       2016-03-17 17:23:34 +08:00
    @holyghost 可是这是部署,不是开发环境呀
    lightening
        14
    lightening  
       2016-03-17 17:24:13 +08:00
    @icybee Daocloud 可以搭建开发环境?我以为它们只是部署的……
    holyghost
        15
    holyghost  
       2016-03-17 17:39:12 +08:00
    @lightening

    针对我提到的这个例子:
    1. 开发环境需要严格和生产环境保持一致,所以开发环境也需要这样部署;
    2. 开发过程中调试的是 linux 本地的代码(可以理解为和之前开发的过程是一样的),变更后的代码经由 docker 中提供的 PHP 服务会直接生效。

    不知道我说清楚了没有。
    xuhaoyangx
        16
    xuhaoyangx  
       2016-03-17 17:57:32 +08:00
    php 这种无需编译在 docker 上面用的比较方便。

    java 其实环境很好统一, jdk server,基本上就统一了,其实没有必要一定在 docker 里面开发。

    我在 docker 里面开发的经历是 因为加载了一些 so ,这些 so 无法在 mac 运行,没有源码不能重新编译,虚拟机太费资源,只好用 docker 弄一个 linux 的环境出来。这么做就会出现,修改完代码,怎么让 tomcat 一类的服务器重新加载。

    一个思路, docker 中,设定好项目的目录,通过 docker 的 volume ,映射外面的 build 后的目录到里面, tomcat 什么的设定自动重加载,即可。每次改完代码 rebuild 下,等待 server 重新加载完就行了
    xuhaoyangx
        17
    xuhaoyangx  
       2016-03-17 18:00:52 +08:00
    打包发布也和上面的思路一样,尽量不要把 java web 项目打包进 docker 。

    写了这么一大堆其实-。-想了想都不推荐用 docker 了。。,写个脚本, jdk +server 基本上 linux 都能通用不需要改什么大的。。
    lightening
        18
    lightening  
       2016-03-17 18:20:28 +08:00 via iPhone
    @holyghost 所以说是由 docker 中的服务器运行宿主机中的 php 代码?
    holyghost
        19
    holyghost  
       2016-03-17 20:24:04 +08:00 via iPhone
    @lightening 对,和 @xuhaoyangx 说的是一个意思。
    luodaoyi233333
        20
    luodaoyi233333  
       2016-03-18 08:42:59 +08:00
    用不着 Docker 用 Docker 他爹 golang
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1179 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:16 · PVG 02:16 · LAX 10:16 · JFK 13:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.