首页 电脑 电脑学堂 查看内容

2017年,使用docker开发应用程序

2017-2-20 14:09 2234 0

摘要: 2017年,使用docker开发应用程序过去的2016年,技术圈对使用docker的部署(deployment)探讨了很多,而大家都忽略了还可以使用docker进行开发(development )。2017年,试试用docker开发应用程序吧。为什么使用docker开 ...

2017年,使用docker开发应用程序

过去的2016年,技术圈对使用docker的部署(deployment)探讨了很多,而大家都忽略了还可以使用docker进行开发(development )。

2017年,试试用docker开发应用程序吧。

为什么使用docker开发应用程序?

开发环境和部署环境完全统一,你的开发环境就是你的部署环境。开发环境测试ok,部署环境也不会出现问题;

docker让你的电脑更加整洁。安装开发语言时会注册大量的信息,卸载时某些垃圾信息仍会残留。而一旦使用了docker进行开发,你可以和垃圾数据说再见了。

语言的版本切换将会更容易,而且可以多语言同时使用。语言版本的冲突向来是个棘手问题,某些优秀的语言版本管理工具,是不支持同时开启两个语言版本的。在你用python3的时候转到python2,需要操作太多,而使用docker,你只需要docker run。

IDE及各类编辑器仍然可以使用。能做到这一点依托于docker的目录挂载功能,你只需要将源代码目录挂载到docker内即可。在使用虚拟机时,用户需要完全进入到虚拟机内,而虚拟机操作系统的体验势必是比宿主机差一些的,这降低了开发效率。使用docker则完全不需要担心这点。

团队开发环境完全统一。团队成员的宿主机可以是windows、linux、osx,所有的人都将共享同一个操作系统,同一个开发环境,同一个版本库。开发环境的搭建是一个消耗企业时间的事情,docker帮你解决。

如何使用docker开发应用程序?

以下使用nodejs进行示例。

hello, docker

复制以下内容到app.js

console.log('hello, docker');

然后运行docker:

docker run --rm -v "$(pwd)":/app -w /app nodejs:latest sh -c 'node app.js'

这个时候应该输出:hello, docker

这个docker在运行结束后会自动关闭(--rm),docker的这一特性也提供了按需使用的方式。

正式的开发环境可以选择supervisor(监听程序更改并重启node程序)代替node命令,并把-rm命令去掉,这样就只需要输入一次命令进行调试了:

docker run -v "$(pwd)":/app -w /app nodejs-supervisor:latest sh -c 'supervisor app.js'

多说一句,生产环境不建议使用supervisor,建议使用pm2。

端口暴露

Web程序都是有端口的,使用docker仅需要一个-p命令进行暴露即可:

docker run --rm -v "$(pwd)":/app -p 8080:8080 -w /app nodejs:latest sh -c 'node app.js'

有更好的集成方案吗?

有,福音计划(Gospel)提供了基于docker的云端开发、部署环境。

福音计划(Gospel)旨在推动云计算在计算机编程领域的应用。福音计划提供了线上集成开发环境(IDE)和docker容器云部署服务。IDE中包括文件管理器、Linux远程终端、代码编辑器、Git版本控制、在线调试以及小程序可视化设计器等功能。容器云包含了二级域名绑定、应用一键部署(discuz/wordpress/phpwind...)、自定义CPU、内存、存储空间以及资源监控等功能。

目前,IDE支持的语言及框架有:

HTML5:Angularjs1/2、Vuejs1/2、Reactjs、Bootstrap1/4

Nodejs:4.4/6.9、koa1/2、express

PHP:5、laravel、thinkphp

微信小程序前端可视化设计器 IDE中的Linux命令行终端目前仅支持ubuntu。

容器云支持的快速部署服务有:

discuz

phpwind

wordpress 容器云尚不支持一级域名绑定。

福音计划的使命是解放开发者生产力,我们想把一切或重复或复杂的开发流程搬到云上,帮助你一键或用尽可能少的步骤完成任务。

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除
1

路过

雷人

握手

鲜花

鸡蛋

刚表态过的朋友 (1 人)

  • 路过

    匿名

最新评论

返回顶部