在win10下用Pycharm连接vmware上的Docker进
之前一直用virtualenv进行环境隔离,部署到服务器上也是用pyvenv这种工具。
由于开发过程中要用到很多第三方包,然后有些第三方包是英文的,自己做了一些汉化,有的的问题要自己动手修复一些小BUG。时间长了后改的东西越来越多,就有点害怕以后部署的时候会很麻烦。于是就在网上找解决方案,网上很多人说用Docker,我想想应该也是,用了Docker后可以让生产环境和开发环境尽量统一,这样以后部署时也轻松一些,但是我是Win10的开发环境,安装docker for win后和Vmware有冲突,只能二选一,Vmware上装了Centos,是用来模拟生产环境的,如果切来切去来麻烦了,放弃docker for win。选择直接在Vmware上的Centos安装docker。
如何安装我就不说了,安装好后,要开启2375端口供Pycharm远程调用,开启方法:
蓝色框框内就是要加进去的vim /usr/lib/systemd/system/docker.service
重启一下docker服务,如果centos上有开防火墙要关掉或者加入2375端口
systemctl daemon-reload
systemctl restart docker
设置Pycharm
192.168.1.78是我Vmware上的Centos的IP地址连接docker成功后去设置调试和运行配置
点击编辑配置在运行配置界面增加一个配置,我选择用Dockerfile来配置,这样以后修改什么都比较方便。
Server设置刚刚我们连接的那个Docker,images tag就是你要创建的Docker镜像名称,Container name就是镜像创建好后要开的容器名称
端口自己设置一个并在centos里把防火墙关了或者加端口
红框框的Bind mouts这个要注意,不要去设置你自己windows上的路径,这个是你宿主机(vm上的centos)和容器的映射
设置好了先不要运行在项目中创建Dockerfile,Dockerfile怎么写我这里就不说了,网上很多说明,放在项目根目录下
然后做一个代码上传设置,把代码同步到centos上面
输入centos的IP和登录帐号密码 设置映射路径 上传设置 选上这个后你ctrl+s保存的同时就会把代码同步到centos上把代码和Dockerfile都传到宿主机后就可以开始做docker镜像上
运行 开始创建镜像如果项目的东西多,这个过程可能需要一些时间,如果你在Dockerfile设置了CMD,这个Dockerfile运行完后会自动运行项目。
运行完成后如果没出错应该是这样的,项目直接跑起来了这个是调试器,解释器也要换成远程的,ctrl+alt+s进入设置
选择这个 点击右边的齿轮后选Add 选择Docker后镜像选择我们刚才创建的那个然后就会出现你的远程运行环境里的包的信息了
这个里面不能像以后Virtualenv一样可以直接点+号就安装这个包那个包了,你每次要安装新的包就要重新在dockerfile里写入相应命令再生成一个镜像才行,镜像是可以覆盖以前的。
说了半天还是没有实现我之前说的修改第三方包后如何方便部署的解决方案
其实Docker只是为了以后我们方便把项目部署到生产环境,对于你要修改第三方包其实我后来找到的方案就是在github上找到这个包,然后fork到自己仓库,修改后再上传到自己仓库,然后在Dockerfile里pip安装自己这个git仓库的包,开发环境也一样通过这种方式安装,这样再也不用去管以后部署的事情了,如果这个包有更新,直接在github上合并更新