利用python3.6+mysql5.6+redis,搭建HttprunnerManager映象
阿新 • • 發佈:2021-12-22
生成的映象地址: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
其他:
如果已經裝有mysql或者redis了,可以按照下面修改成已有的
redis:
換成redis,需改動原始碼的部分:
一、settings.py
註釋掉rabbitmq,加上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
其他:
# redis BROKER_URL = 'redis://127.0.0.1'二、start.sh mysql: 一、settings.py 大概117行。
二、start.sh