HttpRunnerManager是一个自动化测试平台,而搭建个HttpRunnerManager的环境,需要Python、Mysql,RabbitMQ服务,RabbitMQ服务主要用于做异步存储报告用,我们公司用的是redis,所以这里我改为了redis。
一、创建Dockerfile文件
-
在HttpRunnerManager源码文件目录下,vim Dockerfile 新建一个Dockerfile文件,输入如下内容
QQ图片20220322114350.png
# 基础镜像 python3.6-mysql-redis
FROM silverlogic/python3.6
# 描述
MAINTAINER python3.6-mysql5.6-redis-HttpRunnerManager
# 添加必要秘钥,以便添加apt库 archive.ubuntu.com
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
# 换中国源,其中archive.ubuntu.com用于安装mysql
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak \
&& echo "deb http://mirrors.163.com/debian/ stretch main non-free contrib" >> /etc/apt/sources.list \
&& echo "deb http://mirrors.163.com/debian/ stretch-updates main non-free contrib" >>/etc/apt/sources.list \
&& echo "deb-src http://mirrors.163.com/debian/ stretch main non-free contrib" >>/etc/apt/sources.list \
&& echo "deb-src http://mirrors.163.com/debian/ stretch-updates main non-free contrib" >>/etc/apt/sources.list \
&& echo "deb http://archive.ubuntu.com/ubuntu trusty universe" >>/etc/apt/sources.list \
&& apt-get update
# 安装mysql5.6
RUN { \
echo mysql-server mysql-server/root_password password '123456'; \
echo mysql-server mysql-server/root_password_again password '123456'; \
} | debconf-set-selections \
&& apt-get install -y mysql-server-5.6 mysql-client-5.6
# 装redis
RUN apt install -y redis-server
# 复制HttpRunnerManager文件
# 由于add/copy的文件必须使用上下文目录的内容, 因此要先将xxx文件拷贝到当前目录
# https://www.367783.net/hosting/5025.html
COPY ./ /apps/HttpRunnerManager/
# 安装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端口一样 8080 & 5555 是HttpRunnerManager端口,3306数据库 6379redis
EXPOSE 8080 5555 3306 6379
# 启动命令
# 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"]
二、构建镜像
- 构建镜像
# -t 后是镜像名
docker build -t hrunnerma .
如下图,则表示镜像构建成功:
截图_选择区域_20220322135523.png
- 创建并启动容器
# -p 暴露端口,宿主机端口:容器端口
# Runner:创建的容器名称 hrunnerma:镜像名/镜像ID
sudo docker run -itd -p 8089:8080 -p 2206:3306 --name Runner hrunnerma
- 进入容器
# 进入Runner容器内部
sudo docker exec -it Runner bash
截图_选择区域_20220322140442.png
- 在容器内测试Python、mysql、redis是否安装成功
python
redis-cli
mysql -u root -p
截图_选择区域_20220322140920.png
- HttprunnerManager的Web端访问
- 浏览器输入:http://127.0.0.1:8089/api/register/ 注册用户
- 浏览器输入:http://127.0.0.1:8089/admin/ 管理后台
三、上传阿里云
1.登录阿里云:https://cr.console.aliyun.com/cn-hangzhou/instance/repositories
(自行注册登录)
- 创建命名空间和仓库
-
创建镜像本地仓库
截图_选择区域_20220322174546.png
4.上传镜像,执行3条命令,阿里云上可以查看到。
#登录阿里云
docker login --username=自己的用户名 registry.cn-hangzhou.aliyuncs.com
#推送
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/命名空间/仓库名:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/命名空间/仓库名:[镜像版本号]
截图_选择区域_20220322174341.png
5.登录阿里云就能看到上传的镜像了。
截图_选择区域_20220322174756.png
网友评论