2016-05-16 70 views
3

我目前正在开发一个使用Flask的Web应用程序,并且需要在其中一个测试中使用PhantomJS。我使用GitLab作为远程git存储库,并使用Gi​​tLab CI作为CI工具。GitLab CI无法安装/使用PhantomJS

不幸的是,我似乎不能得到GitLab CI的共享亚军安装和运行PhantomJS。它的输出:

Failed PhantomJS Run Screenshot

一个片段从我.gitlab-ci.yml

image: python:2.7.11 

before_script: 
    - ... 
    - mkdir ~/tmp 
    - pushd ~/tmp 
    - wget https://bitbucket.org/ariya/phantomjs/downloads/$PHANTOM_JS.tar.bz2 
    - tar xf $PHANTOM_JS.tar.bz2 
    - mv $PHANTOM_JS phantomjs 
    - ln -s ~/tmp/phantomjs/bin/phantomjs /usr/bin/phantomjs 
    - phantomjs --version 
    - popd 
    - ... 

$Phantom_JS指PhantomJS的特定版本。

有谁知道解决方案?或者是否有其他方法来安装和运行PhantomJS?

谢谢。

回答

2

似乎错误是在我自己身上。我之前没有发现Gitlab CI是建立在64位机器上的。我下载了32位版本,这在某些方面不适用于跑步者。

+0

sudo npm install -g phantomjs-prebuilt < - 将下载并安装正确系统的最新二进制文件。 – larsemil

1

我做的红宝石图像Dockerfile类似的东西,可以确认,有时它只是不下载预期的zip文件。

RUN cd /tmp && \ 
    curl -OL https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.8-linux-x86_64.tar.bz2 && \ 
    tar xjf phantomjs-1.9.8-linux-x86_64.tar.bz2 phantomjs-1.9.8-linux-x86_64/bin/phantomjs && \ 
    mv phantomjs-1.9.8-linux-x86_64/bin/phantomjs /usr/local/bin && \ 
    rm -r phantomjs-1.9.8-linux-x86_64* 

据我所知,bitbucket URL重定向到一个经过验证的S3 url,有时候404s。

我已经使出了与docker run -it IMAGE /bin/bash本地运行的图像,并验证构建后phantomjs使用which phantomjsphantomjs --version安装。如果安装失败,我再次构建容器。

我注意到,击中运行前的容器建立在浏览器的下载URL(这将在本地下载的文件)增加成功的可能性。我很想看到一个“更好”的解决方案。

+1

您应该看到图像:亚军已成功下载并解压缩tar文件,但随后的PhantomJS二进制文件不能被发现之后......我从来没有经历过失败的下载从到位桶tar文件。 – sokokaleb

+0

根据我的经验,该文件确实似乎正确下载和解压缩,但是导致'/ usr/local/bin/phantomjs'的文件不可执行,所以'phantomjs --version'会导致错误。手动运行脚本是我发现在这些情况下下载实际上并不成功。 – BM5k