V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
solomaster
V2EX  ›  问与答

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

  •  
  •   solomaster · Mar 16, 2016 · 3829 views
    This topic created in 3693 days ago, the information mentioned may be changed or developed.
    言简意赅的问:
    1 :我可能会 先后 在 windows 和 mac , ubuntu 等环境下用 eclipse 开发 java web 应用网站和后端服务。
    2 :我可能会先后部署在不同的 vps 和云上, linux 发行版本可能是 centos6 , centos7 , ubuntu , fedora 等等
    3 :我只想配置 一次 开发环境和线上环境,之后要到不同的环境开发和部署,只需要简单的复制就行,最好几分钟就可以搞定。

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


    环境还是 vagrant 比较好
    halfbloodrock
        7
    halfbloodrock  
       Mar 17, 2016
    同时用

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

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

    不知道我说清楚了没有。
    xuhaoyangx
        16
    xuhaoyangx  
       Mar 17, 2016
    php 这种无需编译在 docker 上面用的比较方便。

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

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

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

    写了这么一大堆其实-。-想了想都不推荐用 docker 了。。,写个脚本, jdk +server 基本上 linux 都能通用不需要改什么大的。。
    lightening
        18
    lightening  
       Mar 17, 2016 via iPhone
    @holyghost 所以说是由 docker 中的服务器运行宿主机中的 php 代码?
    holyghost
        19
    holyghost  
       Mar 17, 2016 via iPhone
    @lightening 对,和 @xuhaoyangx 说的是一个意思。
    luodaoyi233333
        20
    luodaoyi233333  
       Mar 18, 2016
    用不着 Docker 用 Docker 他爹 golang
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3571 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 98ms · UTC 11:11 · PVG 19:11 · LAX 04:11 · JFK 07:11
    ♥ Do have faith in what you're doing.