在进行Python开发时,建议使用pipenv进行包管理,使用node中的pm2进行应用监控。本文将会阐述怎样建立一个Python+Node+pipenv+pm2环境的镜像。
01
建立镜像
编撰Dockerfile文件如下所示:
选择官方的Python3.7基础镜像,通过pip3安装pipenv,安装nodev10.x稳定版本,之后通过npm安装pm2,vim是我常使用的工具,所以这儿一起安装了。

建立镜像,命名为python-node,tag为1.0.0:
dockerbuild-tpython-node:1.0.0.
执行此命令须要注意的是,最后的符号.指向的是Dockerfile文件所在的目录,假如Dockerfile文件就在当前执行环境的目录下,这么一个.就可以了,若果不是则须要替换成Dockerfile文件的实际目录。
02
镜像库房
上一步成功建立了一个Python+Node+pipenv+pm2环境的镜像,对应用程序而言,此环境完全可以是通用的,因而我们在建立具体应用的镜像时可以直接将其作为基础镜像,下边我们将这个基础镜像储存到DockerHub镜像库房中。
1、设置此基础镜像的tag:

须要注意的是wangying/python-node:latest中的:
2、登录DockerHub:
dockerlogin
3、将镜像推送到库房:

执行以后才会成功将此镜像推送到库房中,python-node这个repository若果不存在则会手动创建。
03
手动化建立
上一步中建立镜像,打taglinux驱动下载,之后推送到库房都须要自动输命令docker nodejs pm2,改动一次就得重来一遍这太麻烦了,我希望还能手动化去建立,刚好DockerHub提供了与GitHub相连的手动化建立形式。
1、登录DockerHub步入AccountSettings->LinkedAccounts,授权关联你的GitHub帐户:

2、创建GitHub相关repository库房,这儿的示例命名为docker-images。
3、在DockerHub创建repository时设置BuildSettings嵌入式linux 培训,关联GitHub上的repository:

或则在早已创建好的DockerHubrepository中重新设置Build:

4、完成了DockerHub与GitHub的手动化建立关联,只要我们本地更改完Dockerfile文件之后push到GitHub上这个关联的repository,这么DockerHub都会手动去拉取GitHub上最新的Dockerfile文件之后进行重构。原理也很简单,虽然就是借助了GitHub提供的webhook功能。
04
建立应用镜像
建立了基础镜像而且推送到了镜像库房中,我们就可以基于此建立具体应用程序的镜像:

指定基础镜像docker nodejs pm2,设置工作目录,复制项目文件,曝露应用端口,安装项目依赖库,最后通过CMD指定容器启动时手动通过pm2布署应用服务,须要注意的是这儿不能使用pm2而必须使用pm2-runtime,另外pm2.json是我自己的pm2配置文件,这个可以随意弄,通常默认是ecosystem.config.js。
结语
本文的内容就是如此多,虽然就是解决一个问题:建立镜像。
