2016-09-12 32 views
5

我正試圖在碼頭容器中的/usr/local/bin旁邊節點上安裝phantomjs可執行文件。我認爲我已經快到了,但是我對碼頭工人來說很新,而且不熟悉安裝二進制文件或與Linux一起工作,所以很難找出我出錯的地方。在docker中安裝帶有節點的phantomjs

這是我的搬運工文件:

FROM  node:6.4-onbuild 

# Install phantomjs 
WORKDIR  ~ 
RUN   apt-get install libfreetype6 libfreetype6-dev \ 
      && apt-get install libfontconfig1 libfontconfig1-dev 
RUN   export PHANTOM_JS="phantomjs-2.1.1-linux-i686" \ 
      && wget https://bitbucket.org/ariya/phantomjs/downloads/$PHANTOM_JS.tar.bz2 \ 
      && tar xvjf $PHANTOM_JS.tar.bz2 \ 
      && mv $PHANTOM_JS /usr/local/share \ 
      && ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin 

WORKDIR  /usr/src/app 
RUN   npm run build 
EXPOSE  8080 
CMD   ["node", "./bin/start.js"] 

我已經在容器上運行bash和肯定存在/usr/local/bin一種叫做phantomjs但我假設我已經掛了錯誤的事情,或者它是一個無效可執行我從我的應用程序中拋出一個錯誤,告訴我/usr/local/bin中沒有phantomjs可執行文件。

任何人都可以給我幾個指針嗎?如果您發表評論,歡迎提供更多詳情。

回答

7

有一個existing image for this already on Docker hub使用以下Dockerfile:

FROM debian:jessie 
MAINTAINER Werner Beroux <[email protected]> 
# 1. Install runtime dependencies 
# 2. Install official PhantomJS release 
# 3. Clean up 

RUN apt-get update \ 
    && apt-get install -y --no-install-recommends \ 
     ca-certificates \ 
     bzip2 \ 
     libfontconfig \ 
    && apt-get clean \ 
    && rm -rf /var/lib/apt/lists/* 

RUN apt-get update \ 
    && apt-get install -y --no-install-recommends \ 
     curl \ 
    && mkdir /tmp/phantomjs \ 
    && curl -L https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 \ 
      | tar -xj --strip-components=1 -C /tmp/phantomjs \ 
    && cd /tmp/phantomjs \ 
    && mv bin/phantomjs /usr/local/bin \ 
    && cd \ 
    && apt-get purge --auto-remove -y \ 
     curl \ 
    && apt-get clean \ 
    && rm -rf /tmp/* /var/lib/apt/lists/* 

# Run as non-root user 
RUN useradd --system --uid 72379 -m --shell /usr/sbin/nologin phantomjs 

USER phantomjs 
EXPOSE 8910 
CMD ["/usr/local/bin/phantomjs"] 
+0

我試過了搬運工形象第一,我沒有工作。也許在使用node-onbuild docker鏡像時出現問題。 –

+0

很難幫助「沒有工作」和「與節點建立圖像一起使用」,沒有更多的細節。 – BMitch

+0

同意,我會重新運行它,並評論/編輯我的文章與結果 –