【问题标题】:GitLab CI Cannot Install/Use PhantomJSGitLab CI 无法安装/使用 PhantomJS
【发布时间】:2016-09-11 17:54:43
【问题描述】:

我目前正在使用 Flask 开发一个网络应用程序,并且需要在其中一个测试中使用 PhantomJS。我使用 GitLab 作为远程 git 存储库,并使用 GitLab CI 作为 CI 工具。

不幸的是,我似乎无法让 GitLab CI 的共享运行器安装和运行 PhantomJS。它的输出:

Failed PhantomJS Run Screenshot

来自我的.gitlab-ci.yml的一个sn-p:

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?

谢谢。

【问题讨论】:

    标签: continuous-integration phantomjs gitlab gitlab-ci


    【解决方案1】:

    似乎这个错误是在我自己身上。我之前没有发现 Gitlab CI 是建立在 64 位机器上的。我下载了 32 位版本,不知何故无法在运行器上运行。

    【讨论】:

    • sudo npm install -g phantomjs-prebuilt
    【解决方案2】:

    我在 ruby​​ 图像 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 在本地运行映像,并在每次 构建后使用which phantomjsphantomjs --version 验证是否安装了phantomjs。如果安装没有成功,我会重新构建容器。

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

    【讨论】:

    • 您应该看到图像: 运行器已成功下载并解压缩 tar 文件,但之后找不到 PhantomJS 二进制文件...我从未遇到下载 tar 文件失败的情况来自 Bitbucket。
    • 根据我的经验,该文件似乎可以正确下载和解压缩,但以/usr/local/bin/phantomjs 结尾的文件不可执行,因此phantomjs --version 会导致错误。手动运行脚本是我发现在这些情况下实际上下载不成功的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多