在进行Python开发时,建议使用pipenv进行包管理,使用node中的pm2进行应用监控。本文将会阐述怎样建立一个Python+Node+pipenv+pm2环境的镜像。

01

建立镜像

编撰Dockerfile文件如下所示:

选择官方的Python3.7基础镜像,通过pip3安装pipenv,安装nodev10.x稳定版本,之后通过npm安装pm2,vim是我常使用的工具,所以这儿一起安装了。

python pipenv node pm2 dockerfile dockerhub自动化构建_docker nodejs pm2

建立镜像,命名为python-node,tag为1.0.0:

dockerbuild-tpython-node:1.0.0.

执行此命令须要注意的是,最后的符号.指向的是Dockerfile文件所在的目录,假如Dockerfile文件就在当前执行环境的目录下,这么一个.就可以了,若果不是则须要替换成Dockerfile文件的实际目录。

02

镜像库房

上一步成功建立了一个Python+Node+pipenv+pm2环境的镜像,对应用程序而言,此环境完全可以是通用的,因而我们在建立具体应用的镜像时可以直接将其作为基础镜像,下边我们将这个基础镜像储存到DockerHub镜像库房中。

1、设置此基础镜像的tag:

python pipenv node pm2 dockerfile dockerhub自动化构建_docker nodejs pm2

须要注意的是wangying/python-node:latest中的:

2、登录DockerHub:

dockerlogin

3、将镜像推送到库房:

docker nodejs pm2_python pipenv node pm2 dockerfile dockerhub自动化构建

执行以后才会成功将此镜像推送到库房中,python-node这个repository若果不存在则会手动创建。

03

手动化建立

上一步中建立镜像,打taglinux驱动下载,之后推送到库房都须要自动输命令docker nodejs pm2,改动一次就得重来一遍这太麻烦了,我希望还能手动化去建立,刚好DockerHub提供了与GitHub相连的手动化建立形式。

1、登录DockerHub步入AccountSettings->LinkedAccounts,授权关联你的GitHub帐户:

docker nodejs pm2_python pipenv node pm2 dockerfile dockerhub自动化构建

2、创建GitHub相关repository库房,这儿的示例命名为docker-images。

3、在DockerHub创建repository时设置BuildSettings嵌入式linux 培训,关联GitHub上的repository:

python pipenv node pm2 dockerfile dockerhub自动化构建_docker nodejs pm2

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

docker nodejs pm2_python pipenv node pm2 dockerfile dockerhub自动化构建

4、完成了DockerHub与GitHub的手动化建立关联,只要我们本地更改完Dockerfile文件之后push到GitHub上这个关联的repository,这么DockerHub都会手动去拉取GitHub上最新的Dockerfile文件之后进行重构。原理也很简单,虽然就是借助了GitHub提供的webhook功能。

04

建立应用镜像

建立了基础镜像而且推送到了镜像库房中,我们就可以基于此建立具体应用程序的镜像:

docker nodejs pm2_python pipenv node pm2 dockerfile dockerhub自动化构建

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

结语

本文的内容就是如此多,虽然就是解决一个问题:建立镜像。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复