实在没理解 docker 或 vagrant 是怎么统一 [开发] 环境的

2017-09-06 23:28:12 +08:00
 only0jac

网上搜的博客帖子,都说可以解决开发环境统一的问题

比如,公司新来了个员工,通过 docker 可以很快把他的电脑环境弄成和其他人一样的,不需要再去安装 sdk 之类

我疑问的是,假如我们是在 windows 下做 python web 开发

用 docker 的话,我将 python 的安装包和相应的库( flask django 等)打包进 docker,那别人是不是直接使用我这个镜像就可以有和我一样的开发环境?

他是不是不用再在电脑上装 python 的安装包和相应库了?

如果不用的话,他用 pycharm 等工具,怎么本地运行这个 web 项目? pycharm 的运行是需要配置 py 的安装路径吧?

如果后期我又安装了一个库,比如 requests,很小,他是不是又得更新 docker 镜像?

谢谢大家

9548 次点击
所在节点    程序员
48 条回复
terry0314
2017-09-06 23:37:27 +08:00
JamesPan
2017-09-06 23:43:33 +08:00
先把编译器什么的放到镜像里,这样子就统一了构建工具链;然后把 Vim/Emacs 放到镜像里,就统一了开发工具链(逃
songdezu
2017-09-06 23:50:44 +08:00
docker 在 windows 上要虚拟机吧, 占大量内存性能又烂, 新人来了还是老实让他配置和你相同的环境安装依赖包 本机开发吧
heimeil
2017-09-06 23:53:35 +08:00
开发的统一靠的是版本管理工具,将 Dockerfile 加入版本管理,所有的系统依赖都在 Dockerfile 中配置,代码肯定要统一,Dockerfile 也就统一了,Docker 镜像也就统一了。
binux
2017-09-06 23:56:35 +08:00
从来没有从 IDE 中运行过程序
only0jac
2017-09-06 23:59:30 +08:00
@JamesPan 老哥……

@terry0314 谢谢,这样的话,运行岂不是运行在 docker 里?要更新的话岂不是更麻烦

@songdezu 目前有这种感觉,win10 不需要虚拟机,只是感觉配置起来的麻烦程度,不如配个开发环境

@heimeil 开发的统一靠的是版本管理工具???不太理解
only0jac
2017-09-07 00:00:50 +08:00
@binux 因为 pycharm 等 ide 工具栏就直接有个运行按钮,多方便,总比自己去控制台下输入 python xxx.py 强吧?
wenzhoou
2017-09-07 00:16:32 +08:00
同样想知道。😁
changnet
2017-09-07 00:44:24 +08:00
你要用 win 并且用 IDE 调试的话,应该不太好整,至少我不会怎么弄。像我们公司做 C++、lua、php 这种开发的,都是用的一个文本编辑器。把 mysql、gcc、g++和一大堆依赖库全扔进 docker,然后把 docker 打包。新人来了,让他装一下 docker 的环境,然后挂载这个 docker 压缩包就可以了,把本机的源代码目录挂载到 docker 里。改了代码,直接在 shell 里编译一下运行,调试也是用的 shell。

当然,这只是我的私人项目,在公司和家里同步用的。我公司其实没用 docker。
yuanfnadi
2017-09-07 00:55:10 +08:00
@JamesPan 活捉。催更。都快 2 个月没更新了。(逃
JamesPan
2017-09-07 01:00:56 +08:00
@yuanfnadi 在写了在写了,这两天发😂
JamesPan
2017-09-07 01:07:52 +08:00
@only0jac 别不信。。。vagrant 就是给你一个脚本,让你控制怎么从虚拟机镜像开始一步一步构建出目标环境,然后让你在虚拟机里开发,所谓的 docker 能统一开发环境也是一样,把开发工具都打包到 docker 镜像里,然后把代码挂载到容器里,用镜像里打包好的工具开发
PythonAnswer
2017-09-07 01:19:54 +08:00
不喜欢在 ide 里跑东西。ide 主要搞搞调试、重构什么的。
orderc
2017-09-07 01:55:11 +08:00
在 windows 下做开发,但是在 Linux 下运行程序。
popbones
2017-09-07 06:25:26 +08:00
我是这样的,比如我写个 Flask 的 API,用 PyCharm,项目本身的依赖主要是考 venv 来管理,然后项目有 Dockerfile 可以在 Docker 中运行,当然项目所有代码包括 venv 和 Dockerfile 都是由 Git 来管理的。

开发调试工程中,比如需要用到数据库,缓存等其他系统组件,这些就可以由 Docker 或 Docker-compose 启动相应组件,而不需要安装相应的版本并确认配置到宿主机。

开发调试完成,测试 Docker 镜像,运行正常,推到 Registery。

另外你要是实在是想用 PyCharm,但是程序跑在 Docker 里,估计可以挂在本地目录到 Docker 镜像,然后从 PyCharm 远程 attach 到 Docker 中的 Python 进程调试,不过真心何苦呢。
carlclone
2017-09-07 07:11:13 +08:00
自己用一遍就知道了。。。不是什么高深的东西
songjiaxin2008
2017-09-07 07:50:22 +08:00
docker 是用来 scale 的,vagrant 做开发环境更合适。
only0jac
2017-09-07 08:28:20 +08:00
@changnet mysql 之类的我们用测试服务器,那这样的话还不如直接安装个 sdk,在安装库文件,这样更省事

@JamesPan 这对大工程来说很方便,对个人项目似乎有点杀鸡用牛刀了

@popbones 感觉项目小的话是不是就没必要这么折腾了
UnisandK
2017-09-07 08:43:10 +08:00
Pycharm 配置 Python 安装路径的时候不是有 docker 和 vagrant 的支持吗

7654
2017-09-07 08:51:37 +08:00
哈哈,我们的系管直接封装了 Win 系统,输入域帐号开箱即用

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

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

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

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

© 2021 V2EX