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

2016-03-16 22:56:34 +08:00
 solomaster
言简意赅的问:
1 :我可能会 先后 在 windows 和 mac , ubuntu 等环境下用 eclipse 开发 java web 应用网站和后端服务。
2 :我可能会先后部署在不同的 vps 和云上, linux 发行版本可能是 centos6 , centos7 , ubuntu , fedora 等等
3 :我只想配置 一次 开发环境和线上环境,之后要到不同的环境开发和部署,只需要简单的复制就行,最好几分钟就可以搞定。

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


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

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

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

不知道我说清楚了没有。
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
2016-03-17 18:00:52 +08:00
打包发布也和上面的思路一样,尽量不要把 java web 项目打包进 docker 。

写了这么一大堆其实-。-想了想都不推荐用 docker 了。。,写个脚本, jdk +server 基本上 linux 都能通用不需要改什么大的。。
lightening
2016-03-17 18:20:28 +08:00
@holyghost 所以说是由 docker 中的服务器运行宿主机中的 php 代码?
holyghost
2016-03-17 20:24:04 +08:00
@lightening 对,和 @xuhaoyangx 说的是一个意思。
luodaoyi233333
2016-03-18 08:42:59 +08:00
用不着 Docker 用 Docker 他爹 golang

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/264052

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX