部署在Docker容器上时程序崩溃

时间:2020-07-21 22:50:58

标签: java docker or-tools

我有一个使用or-tools中的TSP的Java程序。我可以在本地运行程序,没有任何问题。安装适当的本机依赖项后,我还使用WSL在Debian和Alpine上对其进行了测试。

但是,在容器上运行时,我无法使其工作。我已经测试了多个docker映像和依赖项安装,但是问题仍然存在。当程序运行并请求TSP方法时,容器立即崩溃,没有任何日志,这使调试变得更加困难。

这是我当前的Dockerfile:

# ======================================================================================================================
# Build Application
# ======================================================================================================================
FROM openjdk:14-alpine as build

VOLUME "/root/.gradle/caches"
USER root
ADD . /build/
WORKDIR /build
RUN ls /build

# Inject native Java libraries (needed for or-tools)
RUN yes | cp -rf ./lib/native/linux/jar/* ./lib # or-tools jar files are here

RUN chmod +x ./gradlew && ./gradlew assemble


# ======================================================================================================================
# Setup Application
# ======================================================================================================================
FROM azul/zulu-openjdk-debian:14

VOLUME /tmp
USER root
RUN mkdir /app
WORKDIR /app
COPY --from=build /build/build/libs/service-itinerary-builder-0.1.0.jar app.jar

# Inject native linux libraries (needed for or-tools)
RUN apt install autoconf g++ xfce4-dev-tools libtool zlib1g-dev
COPY --from=build /build/lib/native/linux/lib /lib # or-tools .so files are here


# ======================================================================================================================
# Start Application
# ======================================================================================================================
EXPOSE 8888
ENTRYPOINT exec java -jar app.jar

0 个答案:

没有答案