1. 程式人生 > 其它 >利用python3.6+mysql5.6+redis,搭建HttprunnerManager映象

利用python3.6+mysql5.6+redis,搭建HttprunnerManager映象

生成的映象地址:docker pull registry.cn-hangzhou.aliyuncs.com/hw_wei/hrunmgr:1.0 為啥搭建這個映象? 1、對原來開源平臺的HttprunnerManager 的測試套件執行順序不一致問題做了修改; 2、測試套件非同步執行時候,需要裝RabbitMQ,感覺比較麻煩。公司用的是redis,就替換成redis了; 3、把HttprunnerManager結合了實際的專案,讓開發配合,做了介面測試用例上效率提升; 4、把資料結構也直接裝到了mysql5.6裡面,省去了建立和同步資料庫; 4、單獨裝各種環境,踩了很多坑。正好在學習dockerfile,花了幾天搗鼓一下。 一、在原始碼的目錄上建立Dockefile 檔案,基礎映象是之前建立好的py_mysql_redis
# 基礎映象 python3.6-mysql5.6-redis
FROM py_mysql_redis

# 描述
MAINTAINER HttpRunnerManager

# 安裝依賴, -i指定豆瓣倉庫
# 安裝庫 dwebsocket 報錯(無法解決放棄):UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in posit
RUN pip install -r /apps/HttpRunnerManager/requirements.txt -i https://pypi.douban.com/simple \
    && pip uninstall -y tornado \
    
&& pip install tornado==5.1.1 -i https://pypi.douban.com/simple # 暴露埠, 跟HttpRunnerManager埠一樣 EXPOSE 8080 5555 # 啟動命令 # 1 啟動容器後, 進入容器bash手動啟動 start.sh -- 直接 docker run -t 新增-t引數即可 #CMD ["/bin/sh", "-c", "while true; do sleep 100; done"] # 讓程序一直跑, 否則容器會exit # 2 自動啟動 ENTRYPOINT ["/apps/HttpRunnerManager/start.sh
"]
# 構建映象
sudo docker build -t hrunmgr .
# 建立+啟動容器
sudo docker run -itd -p 8088:8080 -p 5506:3306 --name hrunmgr hrunmgr
# 進入bash
sudo docker exec -it hrunmgr bash
遇到的問題: 資料庫埠暴露之後,在容器內部可以訪問,但是外部還是無法連線。參考上一篇的解決。 ---------------------------- 除錯用到: # 啟動容器 sudo docker start hrunmgr # 關閉容器 sudo docker stop hrunmgr # 刪容器 sudo docker rm hrunmgr # 刪映象 sudo docker rmi hrunmgr
其他:
如果已經裝有mysql或者redis了,可以按照下面修改成已有的 redis: 換成redis,需改動原始碼的部分: 一、settings.py 註釋掉rabbitmq,加上redis。現預設 是本地
# redis
BROKER_URL = 'redis://127.0.0.1'
二、start.sh mysql: 一、settings.py 大概117行。

二、start.sh