by Devin Yang

建立于: 7年前 ( 更新: 7年前 )

文章下方的影片介绍如何使用rendertron解决Polymer SEO优化的问题。
在我fork的source中,已调整支持中文环境。
并且还添加了pdf的API接口,也可以拿来转pdf。

原始Rendertron GitHub连结
https://github.com/GoogleChrome/rendertron

我fork的source已调整中文环境,可以参考我的GitHub上的设置.
另外,我也调整了source加上了pdf的API,所以使用我的source去build image,会多一个pdf的按钮。
https://github.com/DevinY/rendertron
 

关於'ECONNREFUSED'的错误:

在您的内核缺少用户命名空间支持或尝试访问容器中的服务时,会碰到ECONNREFUSED错误时,
以下两种推荐方法可以解决此问题:
  1. [建议] - 使用 Jessie Frazelle' seccomp profile 及  -security-opt  标记
  2. 利用  --cap-add SYS_ADMIN  标记
一、透过wget下载Jessie Frazelle的Chrome浏览器的seccomp分配文档(chrome.json)启动带有内置映像的容器:
wget https://raw.githubusercontent.com/jfrazelle/dotfiles/master/etc/docker/seccomp/chrome.json -O ~/chrome.json
docker run -it -p 8080:8080 --security-opt seccomp=$HOME/chrome.json --name rendertron-container rendertron


二、使用SYS_ADMIN创建及运行的映像档的容器:
docker run -it -p 8080:8080 --cap-add SYS_ADMIN --name rendertron-container rendertron

关於中文支持

您可能有发现了,原始的docker环境中build出来的image是英文的。
所以透过API抓图时也是英文的(测试网址):
https://render-tron.appspot.com/screenshot/https://www.google.com

如果您不想自己build image
可以直接使用我先build好的image,
运行方式如下:
一、先下载chrome.json到自己host的家目录(只需做一次,如果您使用Mac系统未安装wget,请改用其他方式下载该json档):
wget https://raw.githubusercontent.com/jfrazelle/dotfiles/master/etc/docker/seccomp/chrome.json -O ~/chrome.json

二、创建container,这里我加了--rm的参数,停止时,我要把container移掉,试试抓图的功能,就会是中文的罗。
docker run --rm -it -p 8080:8080 --security-opt seccomp=$HOME/chrome.json --name rendertron-container deviny/rendertron

注:
如果使用 npm install 的方式安装,并使用 npm start 运行,
您的系统环境是中文的即可显示中文。
npm start
> bot-render@1.0.0 start /Users/devin/rendertron
> node src/main.js
Chrome launched with debugging on port 54791
Listening on port 3000


关於rendertron如何实际的运用,详细介绍,请看下方影片说明:

Tags: docker polymer seo

Devin Yang

文章内容无法一一说明,如果您有什么不了解处,欢印提问哦:)

No Comment

Post your comment

需要登入才可留言!

类似文章


docker

Devin Yang的Docker初学笔记

这是我初学Docker时的笔记,有点粗糙,有调整了一下下。 但我想对於Docker初学者,应该可以提供一些初步的概念, 欢迎参考看看。

docker,laravel

[D-Laravel]./console node

进行Laravel开发时,有时我们会需要透过npm安装nodejs的包,但是偏偏我们系统中的Node又不够新。 或许因某些因素没法升级,例如要跑旧版的nodejs进程等。 其实我们可以透过简单的命令,用docker,让我们就能使用最新版本的node image来挂载host端的/sites数据夹罗。 这么一来我们就可以随时运行新版本的npm命令啦。

docker

[必学]在docker swarm环境必学iptabels的使用

首先Docker在Linux的环境下,Docker使用iptables规则来提供网络隔离。然而在Docker swarm mode的环境下,我们是没辨法把连接埠开在host的127.0.0.1下的,这时便可透过iptables中的DOCKER-USER chain来自定义规则罗 。