【问题标题】:How to create docker image combining Spring boot app and python3 with libraries?如何创建将 Spring Boot 应用程序和 python3 与库相结合的 docker 映像?
【发布时间】:2020-12-04 13:56:17
【问题描述】:

全部!我是 docker 新手,遇到了如何将 Spring Boot 应用程序与 python 3 结合起来的问题,它是 opencv 和 numpy 等库。我需要它,因为我的服务器使用 python 脚本来处理图像。

我尝试了很多我在此处阅读的方法(在 StackOverflow 中):我尝试将 alpine 和 ubuntu 作为基础映像,我尝试进行多阶段构建...这是我对 ubuntu 的尝试之一:

FROM ubuntu:20.04
RUN apt install openjdk-14-jre-headless
RUN apt install -y python3-pip
RUN apt install build-essential libssl-dev libffi-dev python3-dev
RUN pip3 install numpy && pip3 intall opencv-python

EXPOSE 8080
COPY ./scripts ./scripts
ARG JAR_FILE=target/*.jar
ADD ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

还有另一个包含适当库的基础映像:

FROM patavee/scipy-matplotlib-opencv-py3

FROM openjdk:14
EXPOSE 8080
COPY ./scripts ./scripts
ARG JAR_FILE=target/*.jar
ADD ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

我应该尝试什么才能成功?

【问题讨论】:

  • 第一个 Dockerfile 看起来不错;第二个是忽略 Python 图像的多阶段构建(无法组合两个不同的图像)。您遇到了什么问题,尤其是第一张图片?
  • 警告:apt 没有稳定的 CLI 界面。在脚本中谨慎使用。和 E:无法找到包 openjdk-14-jre-headless
  • 但它是 Ubuntu 的常用包
  • 你需要先apt-get update,可能和apt-get install在同一行RUN
  • 它对我有用!但是现在我在服务器端有一些奇怪的例外情况,而我的 PC 中没有这些例外情况。但我认为这是另一个问题。谢谢。

标签: python-3.x spring-boot docker numpy opencv


【解决方案1】:

David Maze 给出了一个非常好的建议:将 apt-get update 添加到第一行。 所以现在 Dockerfile 变成了这样:

FROM ubuntu:20.04
RUN apt-get update && apt install -y openjdk-14-jre-headless
RUN apt install -y python3-pip
RUN apt install -y build-essential libssl-dev libffi-dev python3-dev
RUN pip3 install numpy && pip3 install opencv-python

EXPOSE 8080
COPY ./scripts ./scripts
ARG JAR_FILE=target/*.jar
ADD ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

【讨论】:

    猜你喜欢
    • 2019-07-31
    • 2020-01-08
    • 2022-09-23
    • 2020-06-17
    • 2020-05-17
    • 2021-08-24
    • 1970-01-01
    • 2020-12-16
    • 2021-02-08
    相关资源
    最近更新 更多