利用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

 

 

 
 
 
 
posted @ 2021-12-22 13:53  ranh  阅读(191)  评论(0编辑  收藏  举报