2016-05-16 69 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