phantomJs的工作人员无法在Docker容器中启动

时间:2018-09-26 16:50:56

标签: node.js docker highcharts phantomjs dockerfile

我正在将我的节点应用程序Docker化,该应用程序使用highcharts-export-server并在我的代码中创建图像。当我在本地计算机上运行创建的映像时,工作人员无法开始说     `

phantom worker 7 error - /usr/src/app/node_modules/phantomjs- 
 prebuilt/lib/phantom/bin/phantomjs: 1: 
/usr/src/app/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs: Syntax error: Unterminated quoted string.

我正在使用的节点版本为8。我还尝试了在运行容器中分别使用platformarchitecture记录process.platformprocess.arch并使用这些值来记录在我的dockerfile中的环境变量PHANTOMJS_PLATFORMPHANTOMJS_ARCH中设置。我还尝试使用RUN npm i -g phantomjs-prebuilt --unsafe-perm单独安装phantomJs。我的Docker文件当前看起来像这样。

FROM node:8
WORKDIR /usr/src/app
COPY package*.json ./
ENV PHANTOMJS_BIN "/usr/local/bin/phantomjs"
ENV PHANTOMJS_PLATFORM "linux"
ENV PHANTOMJS_ARCH "x64"
ENV ACCEPT_HIGHCHARTS_LICENSE="YES"

RUN apt-get update && \
    apt-get install -y \
    python3 \
    python3-pip \
    python3-setuptools \
    groff \
    less \
    && pip3 install --upgrade pip \
    && apt-get clean

RUN pip3 --no-cache-dir install --upgrade awscli

RUN npm set strict-ssl false

RUN npm install
COPY . .

EXPOSE 8080
CMD [ "npm", "start" ]

1 个答案:

答案 0 :(得分:0)

不确定这是否有帮助,但您可以尝试一下:

在您的应用文件夹中运行ConsultoraController.inicio = (req, res, next)=>{ let locals={ title: `Now Consultora`, description: `El mejor lugar para encontrar de todo.`, keywords:"now consultora, desarrollo web, diseño publicitario, google adwords, facebook ads, asesorias", data:{ sesion: (req.user) ? true : false } } if(!req.user){ res.clearCookie('connect.sid', { path: '/' }); } res.render('index', locals); } ,即不运行npm i phantomjs-prebuilt --unsafe-perm。这应该在-g中创建一个名为“ node_modules”的文件夹。 另外,运行此命令后,请检查是否在以下路径phantomjs-prebuilt中创建了phantomjs个二进制文件。