docker構建python微服務
1.拉取python映象
docker pull python:3.6
2.執行python映象並進入容器中
docker run -it --entrypoint bash python:3.6
3.檢測環境
在容器中輸入python,顯示python版本代表容器正常
4.為容器安裝thrift, 因為使用python構建微服務需要thrift
pip install thrift
5.建立新的映象(同時包含python和thrift)
cd /usr/local/microservice/message-thrift-python-service/
建立新的映象命令,同時包含python和thrift : docker build -t python-base:latest -f Dockerfile.base .
這裡的Dockerfile.base內容:
FROM python:3.6
MAINTAINER xxx [email protected]
RUN pip install thrift
6.利用新的映象來將python專案構建成第三個映象(python環境+thrift+python專案)
docker build -t message-service:latest .
注意這裡會預設指定當前路徑下的DockerFile檔案進行執行,內容如下:
FROM python-base:latest
MAINTAINER xxx [email protected]
ENV PYTHONPATH /
COPY message /message
ENTRYPOINT ["python", "/message/message_service.py"]
7.執行映象,構建容器
docker run -it message-service
當顯示下面內容時代表容器執行成功
8.檢驗容器是否執行成功:
再開啟一個終端,輸入:docker ps -a ,當顯示容器up則代表執行成功
如果過程中出現需要修改Dockerfile或者專案模組檔案變動,那麼重新輸入各種拉取和構建映象的命令會很麻煩,這裡比較好的方案就是使用指令碼,將反覆使用的命令寫入指令碼,下次重新構建只要執行指令碼就行了
在這裡我建立了倆個指令碼檔案:
build_base.sh
#!/usr/bin/env bash
docker build -t python-base:latest -f Dockerfile.base .
build_sh
#!/usr/bin/env bash
docker build -t message-service:latest .
docker push message-service:latest
分別是用來執行dockerfile.base和dockerfile檔案
在linux中執行sh檔案命令: sh + ./檔名
目錄結構如下: