在 docker 中安装带节点的 phantomjs
Installing phantomjs with node in docker
我正在尝试将 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"]
我在容器上 运行 bash 并且在 /usr/local/bin
中肯定有一个叫做 phantomjs
的东西,但我假设我链接错了东西或者它是一个无效的可执行文件。我的应用程序抛出一个错误,告诉我 /usr/local/bin
.
中没有 phantomjs
可执行文件
谁能给我一些指点?如果您 post 发表评论,我们很乐意提供更多详细信息。
有一个 existing image for this already on Docker hub 使用以下 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"]
我们使用以下 docker 文件解决了问题
FROM ubuntu:latest
WORKDIR /opt/backend
RUN su -
RUN apt-get update
RUN apt-get install sudo -y
RUN sudo apt install curl -y
RUN curl -sL https://deb.nodesource.com/setup_17.x -o nodesource_setup.sh
RUN sudo bash nodesource_setup.sh
RUN sudo apt install nodejs -y
RUN sudo apt-get install -y fontconfig
RUN sudo apt-get install -y libfontconfig
COPY . .
# Rference [https://github.com/Medium/phantomjs#linux-note][1]
RUN sudo npm set strict-ssl false
RUN sudo npm install
RUN sudo npm install -g phantomjs-prebuilt
RUN sudo npm install -g html-pdf
RUN sudo npm rebuild
RUN sudo npm run build
EXPOSE 3005
CMD npm run start:$env_Profile
我正在尝试将 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"]
我在容器上 运行 bash 并且在 /usr/local/bin
中肯定有一个叫做 phantomjs
的东西,但我假设我链接错了东西或者它是一个无效的可执行文件。我的应用程序抛出一个错误,告诉我 /usr/local/bin
.
phantomjs
可执行文件
谁能给我一些指点?如果您 post 发表评论,我们很乐意提供更多详细信息。
有一个 existing image for this already on Docker hub 使用以下 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"]
我们使用以下 docker 文件解决了问题
FROM ubuntu:latest
WORKDIR /opt/backend
RUN su -
RUN apt-get update
RUN apt-get install sudo -y
RUN sudo apt install curl -y
RUN curl -sL https://deb.nodesource.com/setup_17.x -o nodesource_setup.sh
RUN sudo bash nodesource_setup.sh
RUN sudo apt install nodejs -y
RUN sudo apt-get install -y fontconfig
RUN sudo apt-get install -y libfontconfig
COPY . .
# Rference [https://github.com/Medium/phantomjs#linux-note][1]
RUN sudo npm set strict-ssl false
RUN sudo npm install
RUN sudo npm install -g phantomjs-prebuilt
RUN sudo npm install -g html-pdf
RUN sudo npm rebuild
RUN sudo npm run build
EXPOSE 3005
CMD npm run start:$env_Profile