本文的项目是用Python写的,记录了生成docker镜像,然后整个项目在Linux跑起来的过程:
原文链接:https://msd.misuland.com/pd/3065794831805579512
1、windows中Python环境搭建以及pycharm的安装和配置,用以开发Python项目
这个其实很简单,我从网络上找了一些资源,以下是截图(这块是转的)
(一).python环境的搭建
(1).下载python(这里以python3.6为例)
step 1:打开下载网址:https://www.python.org/downloads/windows/
step 2:我这里选着python3的版本
step 3:选择python的可执行文件安装包
(2).安装python(这里以python3.6为例) step 1:下载完成后就可以安装了,基本傻瓜式安装,不过要强调几点,如下图(python3.6已经可以自动添加环境变量 如果你要安装python2那么你手动配置环境变量,具体方法自行百度,这里不做赘述!)
step 2:安装完成后,我们来检查一下python是否安装成功,打开cmd命令,输入python,回车,若显示类似下图,证明环境搭建完成。
step 3:测试输出hello world,从开始菜单打开python自带的IDE,输入如下代码,然后回车。
至此,我们的python环境搭建完成。
(二).pycharm的安装与配置
(1).pycharm的下载
step 1:打开下载网址:http://www.jetbrains.com/pycharm/
step 2:点击下载按钮。
step 3:专业版是收费的,社区版是免费的,并且社区版新手使用足够,我们这里下载社区版。
(2).pycharm的安装
pycharm的安装依然是傻瓜化安装,基本一路next,这里只强调一点
step 2:接下来是一些按照顺序摆放的配置图片。完成pycharm的基本配置
(4).pycharm的python解释器的搭建
同样,接下来是一些按照顺序摆放的配置图片。完成pycharm的python解释器的搭建
(5).pycharm的建立一个新项目
首先打开pycharm,接下来是一些按照顺序摆放的配置图片。完成pycharm的一个项目创建。
至此,pycharm已经全部安装完成。
pycharm中安装组件的方法:
Python中安装bs4后,pycharm报错ModuleNotFoundError: No module named 'bs4'
如果此时使用pycharm执行代码,在引用bs4 “frombs4 import BeautifulSoup”时还会报错“ModuleNotFoundError: Nomodule named 'bs4'.” 未找到名为bs4的模块,这时需要在Pycharm上安装bs4模块来解决,解决方法如下: 1. File– Setting
Project:Python – Project Interperter
在该页面下会显示执行项目默认的python版本,如图我设置的python版本是python3.6;
还会显示在pycharm上安装的模块,如果执行项目时报错“找不到bs4”,应该是不会显示bs4这个模块的,我安装过,所以会显示。
Install
点击界面右侧的+号,可以打开安装模块界面,在该界面下可以直接搜索并安装相应模块,输入bs4,搜索到对应结果,选择安装模块。
安装完成
安装完成后在界面下方会提示“Package‘bs4’ install successfully”
2、Linux中Python3环境搭建
下载与解压,我这边对应的Python项目所需要的版本,装的是3.7.2
[root@localhost ~]#wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
[root@localhost ~]#tar -xzvf Python-3.7.2.tgz
然后重命名解压后的文件夹为python3
Python环境搭建成功
3、Python项目Dockerfile准备
我的Python项目结构如下:
平时在pycharm里面运行该工程,只要直接运行job.py文件即可。目标是把Python项目放到Linux系统,以docker镜像方式使用容器启动。
4、cmd进入py项目目录,通过pip命令,生成整个Python项目所需要的环境的包放到requirements.txt
#在当前目录把Python所依赖的组件,列在requirements.txt文件中
pip freeze > requirements.txt
生成后的requirements.txt内容如下:
5、建立上传到Linux系统的目录,含有原py项目目录,以及Dockerfile
我的做法是,是在workspace中,建一个专门的目录docker_py
进入docker_py,可以看到py项目和Dockerfile文件,py项目是拷贝过来的
然后把docker_py目录打zip包,上传至Linux,至于Dockerfile的内容,建议不要在windows编辑,因为在windows编辑,会带有windows的符号,直接在Linux在编辑,或者整个Dockerfile文件也在Linux环境在通过touch方式建立,再编写也OK。
通过命令
rz
上传 docker_py.zip 到 /data/docker/py_app 目录,然后把zip解压到当前目录
unzip docker_py.zip
进入docker_py,编写Dockerfile内容
#基于的基础镜像
FROM python:3.7
#代码添加到code文件夹,后面可以通过进入容器中看的
ADD ./py /code
# 设置code文件夹是工作目录
WORKDIR /code
# 安装支持
RUN pip install -r requirements.txt
#当容器启动时,使用python3执行指定路径的py脚本
CMD ["python3", "/code/venv/Include/job.py"]
6、Linux中把Dockerfile生成镜像
Linux进入docker_py目录,然后docker方式生成镜像
# py_app为创建的镜像名称,. 表示以当前目录的内容生成(docker_py)
docker build -t py_app:2 .
看到上面截图,则镜像构建成功,我们校验一下:
docker images
看到py_app镜像已经成功了
7、Linux中docker_compose方式执行镜像,到Python项目跑起来
进入py_app目录,新建 docker-compose.yml 文件
py:
image: py_app:2
ports:
- "8090:9060"
restart: always
docker-compose.yml编排文件中,image需要与前面构建的镜像名称和版本一致,然后启动项目
[root@localhost py_app]# docker-compose up -d py
至此,搞定了
8、解释下前面Dockerfile设定的工作目录,可以进入容器看
根目录即是code了