前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于Docker搭建Webpagetest服务

基于Docker搭建Webpagetest服务

作者头像
腾讯IVWEB团队
发布2020-06-28 00:25:17
2K4
发布2020-06-28 00:25:17
举报

安装Docker

要求 docker 版本 > 1.30

安装 WPT Agent 和 WPT Server

Docker基本环境配置好后,接下来需要安装 WPT 的包了。WPT 的软件包分为 Agent 和 Server 两个部分,对应:

代码语言:javascript
复制
$ docker pull webpagetest/server
$ docker pull webpagetest/agent

启动服务

运行 WPT Server
代码语言:javascript
复制
$ docker run -d -p 4000:80 --rm webpagetest/server
运行 WPT Agent
代码语言:javascript
复制
$ docker run -d -p 4001:80 \
--network="host" \
-e "SERVER_URL=http://localhost:4000/work/" \
-e "LOCATION=Test" \
webpagetest/agent

运行上述步骤后,直接访问 http://localhost:4000 即可看到

依赖检查

WPT 已经安装好了,WPT的对应配置检查可以通过:http://localhost:4000/install 来看它的依赖是否都安装。

Mac 下 Traffic Shaping问题

OSX 下会遇到Error configuring traffic-shaping报错,这是因为OSX下还没有实现 traffic-shaping

可以去掉traffic shaping特性通过在settings/locations.ini设置一个假的connectivity值,并且在agent运行的时候增加--shaper参数。

更好的办法是基于原有的WPT agent/server镜像制作新的Docker镜像,方便后续搭建Docker集群。

制作镜像

Server

创建一个server文件夹,包含Dockerfile和locations.ini文件。

Dockerfile:

代码语言:javascript
复制
FROM webpagetest/server
ADD locations.ini /var/www/html/settings/

locations.ini:

代码语言:javascript
复制
[locations]
1=Test_loc
[Test_loc]
1=Test
label=Test Location
group=Desktop
[Test]
browser=Chrome,Firefox
label="Test Location"
connectivity=LAN

本地build镜像

代码语言:javascript
复制
$ docker build -t local-wptserver .

Agent

创建一个agent文件夹,包含Dockerfile和script.sh文件。

Dockerfile

代码语言:javascript
复制
FROM webpagetest/agent
ADD script.sh /
ENTRYPOINT /script.sh

script.sh

代码语言:javascript
复制
#!/bin/bash
set -e
if [ -z "$SERVER_URL" ]; then
echo >&2 'SERVER_URL not set'
exit 1
fi
if [ -z "$LOCATION" ]; then
echo >&2 'LOCATION not set'
exit 1
fi
EXTRA_ARGS=""
if [ -n "$NAME" ]; then
EXTRA_ARGS="$EXTRA_ARGS --name $NAME"
fi
python /wptagent/wptagent.py --server $SERVER_URL --location $LOCATION $EXTRA_ARGS --xvfb --dockerized -vvvvv --shaper none

script.sh 可执行

代码语言:javascript
复制
chmod u+x script.sh

制作Agent镜像

代码语言:javascript
复制
$ docker build -t local-wptagent .

开始运行一个Webpagetest Docker实例

代码语言:javascript
复制
$ docker run -d -p 4000:80 local-wptserver
$ docker run -d -p 4001:80 \
--network="host" \
-e "SERVER_URL=http://localhost:4000/work/" \
-e "LOCATION=Test" \
local-wptagent

最后访问 http://127.0.0.1:4000 即可查看到效果。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装Docker
    • 安装 WPT Agent 和 WPT Server
      • 运行 WPT Server
      • 运行 WPT Agent
      • 依赖检查
      • Mac 下 Traffic Shaping问题
  • 启动服务
  • 制作镜像
    • Server
      • Agent
      • 开始运行一个Webpagetest Docker实例
      相关产品与服务
      容器镜像服务
      容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档