iTXTech / mirai-console-loader

模块化、轻量级且支持完全自定义的 mirai 加载器。
GNU Affero General Public License v3.0
732 stars 63 forks source link

构建dockerfile网络error #161

Closed greenhandzdl closed 1 year ago

greenhandzdl commented 1 year ago

DockerFile代码

FROM alpine:latest

# DockerFile目录下需要包含机器人文件
WORKDIR .
# 复制机器人信息,以免登录
COPY bots /MCL/bots
COPY plugins /MCL/plugins

RUN apk --update add curl wget bash openjdk11 unzip && \
    rm -rf /var/cache/apk/* && \
    cd /MCL && \
    wget https://github.com/iTXTech/mirai-console-loader/releases/download/v2.1.2/mcl-2.1.2.zip && \
    unzip mcl-2.1.2.zip && \
    chmod +x mcl &&\
    bash mcl

mcl部分

  inflating: mcl.jar                 
  07:24:47 [INFO] iTX Technologies Mirai Console Loader version 2.1.2-61c8bd8
  07:24:47 [INFO] Runtime: OpenJDK 64-Bit Server VM 11.0.18 (arch: 64)
  07:24:47 [INFO] https://github.com/iTXTech/mirai-console-loader
  07:24:47 [INFO] This program is licensed under GNU AGPL v3
  07:24:48 [INFO] MCL Addon is installed! Website: https://github.com/iTXTech/mcl-addon
  07:24:48 [WARN] To remove MCL Addon, run "./mcl --disable-module addon" and "./mcl --remove-package org.itxtech:mcl-addon"
  07:24:49 [INFO] Mirai Console Loader Announcement:
Mirai Console Loader 公告栏

如果在图片上传的时候遇到问题请与我们联系 (需要提供图片文件源本)
`- 如 Unsupported image type for ExternalResource *
`  considering use gif/png/bmp/jpg format.
`- Tracker: https://github.com/mamoe/mirai/issues/new/choose

常用资源整合
`- https://mirai.mamoe.net/topic/653

MCL 已推出 2.1.0,更好的支持 Mirai 2.11 的插件系统,建议更新。

  07:24:49 [INFO] Verifying "net.mamoe:mirai-console"
  07:25:19 [ERROR] java.net.http.HttpConnectTimeoutException: HTTP connect timed out
        at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:555)
        at java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:119)
        at org.itxtech.mcl.component.Repository.httpGet(Repository.java:211)
        at org.itxtech.mcl.component.Repository.fetchMavenMetadata(Repository.java:91)
        at org.itxtech.mcl.component.Repository.getLatestVersionFromMaven(Repository.java:103)
        at org.itxtech.mcl.module.builtin.Updater.check(Updater.java:99)
        at org.itxtech.mcl.module.builtin.Updater.load(Updater.java:60)
        at org.itxtech.mcl.module.ModuleManager.phaseLoad(ModuleManager.java:117)
        at org.itxtech.mcl.Loader.lambda$start$3(Loader.java:190)
        at org.itxtech.mcl.Loader.tryCatching(Loader.java:151)
        at org.itxtech.mcl.Loader.start(Loader.java:190)
        at org.itxtech.mcl.Loader.main(Loader.java:84)
Caused by: java.net.http.HttpConnectTimeoutException: HTTP connect timed out
        at java.net.http/jdk.internal.net.http.ResponseTimerEvent.handle(ResponseTimerEvent.java:68)
        at java.net.http/jdk.internal.net.http.HttpClientImpl.purgeTimeoutsAndReturnNextDeadline(HttpClientImpl.java:1248)
        at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.run(HttpClientImpl.java:877)
Caused by: java.net.ConnectException: HTTP connect timed out
        at java.net.http/jdk.internal.net.http.ResponseTimerEvent.handle(ResponseTimerEvent.java:69)
        ... 2 more

  07:25:19 [ERROR] Failed to verify package "net.mamoe:mirai-console"
  07:25:19 [INFO] Verifying "net.mamoe:mirai-console-terminal"
  07:25:19 [ERROR] java.lang.Exception: Cannot find valid maven metadata
        at org.itxtech.mcl.component.Repository.fetchMavenMetadata(Repository.java:99)
        at org.itxtech.mcl.component.Repository.getLatestVersionFromMaven(Repository.java:103)
        at org.itxtech.mcl.module.builtin.Updater.check(Updater.java:99)
        at org.itxtech.mcl.module.builtin.Updater.load(Updater.java:60)
        at org.itxtech.mcl.module.ModuleManager.phaseLoad(ModuleManager.java:117)
        at org.itxtech.mcl.Loader.lambda$start$3(Loader.java:190)
        at org.itxtech.mcl.Loader.tryCatching(Loader.java:151)
        at org.itxtech.mcl.Loader.start(Loader.java:190)
        at org.itxtech.mcl.Loader.main(Loader.java:84)

  07:25:49 [ERROR] java.net.http.HttpConnectTimeoutException: HTTP connect timed out
        at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:555)
        at java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:119)
        at org.itxtech.mcl.component.Repository.httpGet(Repository.java:211)
        at org.itxtech.mcl.component.Repository.fetchMavenMetadata(Repository.java:91)
        at org.itxtech.mcl.component.Repository.getLatestVersionFromMaven(Repository.java:103)
        at org.itxtech.mcl.module.builtin.Updater.check(Updater.java:99)
        at org.itxtech.mcl.module.builtin.Updater.load(Updater.java:60)
        at org.itxtech.mcl.module.ModuleManager.phaseLoad(ModuleManager.java:117)
        at org.itxtech.mcl.Loader.lambda$start$3(Loader.java:190)
        at org.itxtech.mcl.Loader.tryCatching(Loader.java:151)
        at org.itxtech.mcl.Loader.start(Loader.java:190)
        at org.itxtech.mcl.Loader.main(Loader.java:84)
Caused by: java.net.http.HttpConnectTimeoutException: HTTP connect timed out
        at java.net.http/jdk.internal.net.http.ResponseTimerEvent.handle(ResponseTimerEvent.java:68)
        at java.net.http/jdk.internal.net.http.HttpClientImpl.purgeTimeoutsAndReturnNextDeadline(HttpClientImpl.java:1248)
        at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.run(HttpClientImpl.java:877)
Caused by: java.net.ConnectException: HTTP connect timed out
        at java.net.http/jdk.internal.net.http.ResponseTimerEvent.handle(ResponseTimerEvent.java:69)
        ... 2 more

  07:25:49 [ERROR] Failed to verify package "net.mamoe:mirai-console-terminal"
  07:25:49 [ERROR] java.lang.Exception: Cannot find valid maven metadata
        at org.itxtech.mcl.component.Repository.fetchMavenMetadata(Repository.java:99)
        at org.itxtech.mcl.component.Repository.getLatestVersionFromMaven(Repository.java:103)
        at org.itxtech.mcl.module.builtin.Updater.check(Updater.java:99)
        at org.itxtech.mcl.module.builtin.Updater.load(Updater.java:60)
        at org.itxtech.mcl.module.ModuleManager.phaseLoad(ModuleManager.java:117)
        at org.itxtech.mcl.Loader.lambda$start$3(Loader.java:190)
        at org.itxtech.mcl.Loader.tryCatching(Loader.java:151)
        at org.itxtech.mcl.Loader.start(Loader.java:190)
        at org.itxtech.mcl.Loader.main(Loader.java:84)

  07:25:49 [INFO] Verifying "net.mamoe:mirai-core-all"
  07:26:19 [ERROR] java.net.http.HttpConnectTimeoutException: HTTP connect timed out
        at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:555)
        at java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:119)
        at org.itxtech.mcl.component.Repository.httpGet(Repository.java:211)
        at org.itxtech.mcl.component.Repository.fetchMavenMetadata(Repository.java:91)
        at org.itxtech.mcl.component.Repository.getLatestVersionFromMaven(Repository.java:103)
        at org.itxtech.mcl.module.builtin.Updater.check(Updater.java:99)
        at org.itxtech.mcl.module.builtin.Updater.load(Updater.java:60)
        at org.itxtech.mcl.module.ModuleManager.phaseLoad(ModuleManager.java:117)
        at org.itxtech.mcl.Loader.lambda$start$3(Loader.java:190)
        at org.itxtech.mcl.Loader.tryCatching(Loader.java:151)
        at org.itxtech.mcl.Loader.start(Loader.java:190)
        at org.itxtech.mcl.Loader.main(Loader.java:84)
Caused by: java.net.http.HttpConnectTimeoutException: HTTP connect timed out
        at java.net.http/jdk.internal.net.http.ResponseTimerEvent.handle(ResponseTimerEvent.java:68)
        at java.net.http/jdk.internal.net.http.HttpClientImpl.purgeTimeoutsAndReturnNextDeadline(HttpClientImpl.java:1248)
        at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.run(HttpClientImpl.java:877)
Caused by: java.net.ConnectException: HTTP connect timed out
        at java.net.http/jdk.internal.net.http.ResponseTimerEvent.handle(ResponseTimerEvent.java:69)
        ... 2 more

  07:26:19 [ERROR] Failed to verify package "net.mamoe:mirai-core-all"
  07:26:19 [ERROR] java.lang.Exception: Cannot find valid maven metadata
        at org.itxtech.mcl.component.Repository.fetchMavenMetadata(Repository.java:99)
        at org.itxtech.mcl.component.Repository.getLatestVersionFromMaven(Repository.java:103)
        at org.itxtech.mcl.module.builtin.Updater.check(Updater.java:99)
        at org.itxtech.mcl.module.builtin.Updater.load(Updater.java:60)
        at org.itxtech.mcl.module.ModuleManager.phaseLoad(ModuleManager.java:117)
        at org.itxtech.mcl.Loader.lambda$start$3(Loader.java:190)
        at org.itxtech.mcl.Loader.tryCatching(Loader.java:151)
        at org.itxtech.mcl.Loader.start(Loader.java:190)
        at org.itxtech.mcl.Loader.main(Loader.java:84)

  07:26:19 [INFO] Verifying "org.itxtech:mcl-addon"
  07:26:49 [ERROR] java.net.http.HttpConnectTimeoutException: HTTP connect timed out
        at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:555)
        at java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:119)
        at org.itxtech.mcl.component.Repository.httpGet(Repository.java:211)
        at org.itxtech.mcl.component.Repository.fetchMavenMetadata(Repository.java:91)
        at org.itxtech.mcl.component.Repository.getLatestVersionFromMaven(Repository.java:103)
        at org.itxtech.mcl.module.builtin.Updater.check(Updater.java:99)
        at org.itxtech.mcl.module.builtin.Updater.load(Updater.java:60)
        at org.itxtech.mcl.module.ModuleManager.phaseLoad(ModuleManager.java:117)
        at org.itxtech.mcl.Loader.lambda$start$3(Loader.java:190)
        at org.itxtech.mcl.Loader.tryCatching(Loader.java:151)
        at org.itxtech.mcl.Loader.start(Loader.java:190)
        at org.itxtech.mcl.Loader.main(Loader.java:84)
Caused by: java.net.http.HttpConnectTimeoutException: HTTP connect timed out
        at java.net.http/jdk.internal.net.http.ResponseTimerEvent.handle(ResponseTimerEvent.java:68)
        at java.net.http/jdk.internal.net.http.HttpClientImpl.purgeTimeoutsAndReturnNextDeadline(HttpClientImpl.java:1248)
        at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.run(HttpClientImpl.java:877)
Caused by: java.net.ConnectException: HTTP connect timed out
        at java.net.http/jdk.internal.net.http.ResponseTimerEvent.handle(ResponseTimerEvent.java:69)
        ... 2 more

  07:26:49 [ERROR] Failed to verify package "org.itxtech:mcl-addon"
  07:26:49 [ERROR] java.lang.Exception: Cannot find valid maven metadata
        at org.itxtech.mcl.component.Repository.fetchMavenMetadata(Repository.java:99)
        at org.itxtech.mcl.component.Repository.getLatestVersionFromMaven(Repository.java:103)
        at org.itxtech.mcl.module.builtin.Updater.check(Updater.java:99)
        at org.itxtech.mcl.module.builtin.Updater.load(Updater.java:60)
        at org.itxtech.mcl.module.ModuleManager.phaseLoad(ModuleManager.java:117)
        at org.itxtech.mcl.Loader.lambda$start$3(Loader.java:190)
        at org.itxtech.mcl.Loader.tryCatching(Loader.java:151)
        at org.itxtech.mcl.Loader.start(Loader.java:190)
        at org.itxtech.mcl.Loader.main(Loader.java:84)

  07:26:49 [ERROR] java.nio.file.NoSuchFileException: libs/mirai-console-.zip
        at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
        at java.base/sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
        at java.base/sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:149)
        at java.base/sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99)
        at java.base/java.nio.file.Files.readAttributes(Files.java:1764)
        at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1259)
        at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:733)
        at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:850)
        at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:248)
        at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:177)
        at java.base/java.util.jar.JarFile.<init>(JarFile.java:350)
        at java.base/java.util.jar.JarFile.<init>(JarFile.java:321)
        at java.base/java.util.jar.JarFile.<init>(JarFile.java:287)
        at org.itxtech.mcl.Utility.bootJars(Utility.java:83)
        at org.itxtech.mcl.Utility.bootJars(Utility.java:76)
        at org.itxtech.mcl.Utility.bootMirai(Utility.java:98)
        at org.itxtech.mcl.module.builtin.Boot.boot(Boot.java:113)
        at org.itxtech.mcl.module.ModuleManager.phaseBoot(ModuleManager.java:123)
        at org.itxtech.mcl.Loader.lambda$start$4(Loader.java:196)
        at org.itxtech.mcl.Loader.tryCatching(Loader.java:151)
        at org.itxtech.mcl.Loader.start(Loader.java:196)
        at org.itxtech.mcl.Loader.main(Loader.java:84)
greenhandzdl commented 1 year ago

额,是alpine的openjdk跟这个犯冲,重新采用了oracle的脚本就可以正常run了

FROM oraclelinux:8 as builder

#https://github.com/oracle/docker-images
RUN set -eux; \
    dnf install -y tar; 
ENV LANG en_US.UTF-8
ENV JAVA_URL=https://download.oracle.com/java/17/latest \
    JAVA_HOME=/usr/java/jdk-17
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN set -eux; \
    ARCH="$(uname -m)" && \
    # Java uses just x64 in the name of the tarball
        if [ "$ARCH" = "x86_64" ]; \
        then ARCH="x64"; \
        fi && \
        JAVA_PKG="$JAVA_URL"/jdk-17_linux-"${ARCH}"_bin.tar.gz ; \
    JAVA_SHA256="$(curl "$JAVA_PKG".sha256)" ; \ 
    curl --output /tmp/jdk.tgz "$JAVA_PKG" && \
    echo "$JAVA_SHA256" */tmp/jdk.tgz | sha256sum -c; \
    mkdir -p "$JAVA_HOME"; \
    tar --extract --file /tmp/jdk.tgz --directory "$JAVA_HOME" --strip-components 1
FROM oraclelinux:8
ENV LANG en_US.UTF-8
ENV JAVA_HOME=/usr/java/jdk-17
ENV PATH $JAVA_HOME/bin:$PATH   
COPY --from=builder $JAVA_HOME $JAVA_HOME
RUN set -eux; \
    dnf -y update; \
    dnf install -y \
        freetype fontconfig \
    ; \
    rm -rf /var/cache/dnf; \
    ln -sfT "$JAVA_HOME" /usr/java/default; \
    ln -sfT "$JAVA_HOME" /usr/java/latest; \
    for bin in "$JAVA_HOME/bin/"*; do \
        base="$(basename "$bin")"; \
        [ ! -e "/usr/bin/$base" ]; \
        alternatives --install "/usr/bin/$base" "$base" "$bin" 20000; \
    done;

# DockerFile目录下需要包含机器人文件
WORKDIR .
# 复制机器人信息,以免登录
COPY bots /root/MCL/bots
COPY plugins /root/MCL/plugins

RUN dnf -y update && dnf -y install unzip wget && dnf clean all && \
        cd /root/MCL && \
        wget https://github.com/iTXTech/mirai-console-loader/releases/download/v2.1.2/mcl-2.1.2.zip && \
        unzip mcl-2.1.2.zip && \
        chmod +x mcl &&\
        bash mcl