本文的項目是用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了