【问题标题】:Docker Phantomjs driver accessDocker Phantomjs 驱动访问
【发布时间】:2017-06-15 20:33:39
【问题描述】:

我有一个 docker 容器,它的 spring-boot 应用程序。从这个 docker 容器我​​想访问本地 phantomjs 驱动程序。当我在 docker 中运行我的容器时,它给出了“驱动程序可执行文件不存在:/usr/bin/phantomjs”异常,但我的 phantomjs 驱动程序存在于该路径下。 这个 docker 容器如何访问 '/usr/bin/phantomjs' 文件? 我应该在 docker 文件中添加这一行 VOLUME /usr/bin/phantomjs 吗? phantomjs 版本是:2.1.1

【问题讨论】:

  • 您不应该从 docker 镜像访问本地可执行文件,您需要使用 phantomjs docker 镜像
  • 从您的 docker 容器中,运行 file /usr/bin/phantomjs。你得到了什么?
  • 您使用的是哪个镜像库?您是否将 runner 用户签入到容器中可以执行此文件?
  • @SiKing,当我在容器中运行您的命令时,出现权限被拒绝错误。看来,我的 docker 容器无法访问 /usr/bin/phantomjs 下的这个 phantomjs 二进制文件。这个 docker 镜像是我个人项目的镜像,我不确定我应该使用 phantomjs 作为 docker 容器还是可以是 ubuntu 上的常规 phantomjs?
  • 所以很明显出了点问题。如果您希望我们为您提供帮助,您需要提供minimal reproducible example

标签: java docker phantomjs


【解决方案1】:

适用于我的应用程序的解决方案是

dockerfile

FROM openjdk:11
VOLUME /tmp
ARG JAR_FILE
COPY build/libs/*.jar app.jar
EXPOSE 8080 9090 8000

ENV PHANTOMJS_VERSION 2.1.1
RUN wget -q -O phantomjs.tar.bz2 https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2 \
    && tar -f phantomjs.tar.bz2 -xj phantomjs-$PHANTOMJS_VERSION-linux-x86_64/bin/phantomjs \
    && mv phantomjs-$PHANTOMJS_VERSION-linux-x86_64/bin/phantomjs /usr/local/bin/ \
    && rm -rf phantomjs-$PHANTOMJS_VERSION-linux-x86_64 phantomjs.tar.bz2


ENTRYPOINT ["java","-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000","-jar","/app.jar"]

然后我可以在java中直接使用phantomjs spring-boot

我的 java 代码

List<String> cmdArgs = new ArrayList<String>(5);
cmdArgs.add("phantomjs");

// Other code and other phantomjs args 

ProcessBuilder proc = new ProcessBuilder().inheritIO().command(cmdArgs.toArray(new String[] {}));
Process process = proc.start();

if (process.waitFor() == 0 || process.exitValue() == 0) // Wait for PhantomJS to complete 
{
    ok = true;
}
else
{
    errorMsg = String.valueOf(process.exitValue());
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-31
    • 2020-05-06
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 2018-12-31
    • 2017-01-30
    相关资源
    最近更新 更多