dolphinscheduler的worker和master模块打包镜像时遇到的坑

问题描述

打包dolphinscheduler-worker和dolphinscheduler-master的时候遇到的执行出错问题,Dockerfile如下:

FROM openjdk:8-jdk-alpine

ENV DOCKER true
ENV TZ Asia/Shanghai
ENV DOLPHINSCHEDULER_HOME /opt/dolphinscheduler

RUN apt update ; \
    apt install -y sudo ; \
    rm -rf /var/lib/apt/lists/*

WORKDIR $DOLPHINSCHEDULER_HOME

ADD ./target/worker-server $DOLPHINSCHEDULER_HOME

EXPOSE 1235

CMD [ "/bin/bash", "./bin/start.sh" ]

启动镜像命令如下:

docker run -d -p 1235:1235 --network dolphinscheduler --name dolphinscheduler-worker dolphinscheduler-worker:0.0.0

运行镜像后出现问题:

dolphinscheduler的worker和master模块打包镜像时遇到的坑_第1张图片

解决方案

这个错误通常表示在 Java 应用程序中使用了需要依赖 libudev.so 的库,但是该库在资源路径中找不到。libudev.so 是 Linux 系统中的一个库文件,用于与设备和 udev 服务进行交互。

确保 libudev.so 在系统中存在:检查系统中是否安装了 libudev 库。你可以使用包管理器(如 aptyumapk)来安装缺失的库文件。例如,在 Alpine Linux 上,你可以运行以下命令安装 libudev 库:

apk add libudev

在执行过程中可能会出现 “ERROR: unsatisfiable constraints” 错误,这意味着 libudev 软件包无法满足系统的依赖条件。

在 Alpine Linux 中,libudev 软件包通常不是直接提供的,而是由 eudevsystemd-libs 等软件包提供的。因此,可以尝试安装这些软件包之一来满足 libudev 的依赖。

  • 使用eudev软件包

    apk add eudev
    
    
  • systemd-libs软件包

    apk add systemd-libs
    

你可能感兴趣的:(java,docker)