Docker Phantomjs 驱动程序访问



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

在我的应用程序中工作的解决方案是

码头工人文件

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

我的爪哇代码

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());
}

相关内容

最新更新