在docker中安装带节点的phantomjs

时间:2016-09-12 13:10:10

标签: node.js docker phantomjs devops

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

这是我的泊坞文件:

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,phantomjs中肯定有一个名为/usr/local/bin的内容,但我假设我已经将错误的内容联系起来或者#&# 39; s无效的可执行文件。我的应用程序中发出错误,告诉我phantomjs中没有/usr/local/bin可执行文件。

任何人都可以给我一些指示吗?如果您发表评论,很高兴提供更多详细信息。

1 个答案:

答案 0 :(得分:11)

使用以下Dockerfile existing image for this already on Docker hub

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"]