在docker中安装带节点的phantomjs

Sam*_*m P 7 node.js phantomjs docker devops

我正在尝试将phantomjs可执行文件安装/usr/local/bin在docker容器中,与节点一起安装.我想我几乎就在那里,但我对Docker很陌生,并且不太熟悉安装二进制文件或者使用Linux,因此很难找到我出错的地方.

这是我的docker文件:

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"]
Run Code Online (Sandbox Code Playgroud)

我在容器上运行bash,肯定有一些东西被调用phantomjs,/usr/local/bin但我假设我已经链接了错误的东西,或者它是一个无效的可执行文件.我从我的应用程序中抛出一个错误,告诉我没有phantomjs可执行文件/usr/local/bin.

谁能给我一些指示?如果您发表评论,很高兴提供更多详细信息.

BMi*_*tch 11

这里有一个对这个现有的图片已经在泊坞枢纽使用以下Dockerfile:

FROM debian:jessie 
MAINTAINER Werner Beroux <werner@beroux.com> 
# 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"]
Run Code Online (Sandbox Code Playgroud)