docker部署webpagetest
制作镜像
Server
创建一个server文件夹,包含Dockerfile和locations.ini文件。
Dockerfile:
FROM webpagetest/server ADD locations.ini /var/www/html/settings/
locations.ini:
[locations] 1=Test_loc [Test_loc] 1=Test label=Test Location group=Desktop [Test] browser=Chrome,Firefox label="Test Location" connectivity=LAN
本地build镜像
$ docker build -t local-wptserver .
Agent
创建一个agent文件夹,包含Dockerfile和script.sh文件。
Dockerfile:
FROM webpagetest/agent ADD script.sh / ENTRYPOINT /script.sh
script.sh
#!/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 可执行
chmod u+x script.sh
制作Agent镜像
$ docker build -t local-wptagent .
开始运行一个Webpagetest Docker实例
$ 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 即可查看到效果。