几周来我一直在使用 docker build 和 docker run,一切正常。我想放入容器中的可执行文件也运行正常。
突然我收到这个我不明白的错误:
root@DESKTOP-EVLULFV:/home/simple/simple# docker run -i -p 8080:8080 --name simple --platform linux/amd64 quarkus/simple
./application:加载共享库时出错:libz.so.1:无法打开共享对象文件:没有此文件或目录
libz.so.1 位于 /usr/lib/x86_64-linux-gnu 中,我将该文件夹放在我的路径中。
我使用以下命令成功构建了我的 docker 镜像:
docker build -f Dockerfile.native -t quarkus/simple 。
我想检查容器,但它没有运行。
我如何告诉 Docker libz.so.1 在哪里?
答案1
没关系,修好了
我从我的docker文件中删除了以下垃圾。
FROM busybox
COPY . /build-context
WORKDIR /build-context
CMD find .
这是有效的:
####
# This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode.
#
# Before building the container image run:
#
# ./mvnw package -Dnative
#
# Then, build the image with:
#
# docker build -f Dockerfile.native -t quarkus/simple .
#
# Then run the container using:
#
# docker run -i --rm -p 8080:8080 quarkus/simple
#
###
FROM ubuntu:20.04
WORKDIR /work/
RUN chown 1001 /work \
&& chmod "g+rwX" /work \
&& chown 1001:root /work
COPY --chown=1001:root target/*-runner /work/application
EXPOSE 8080
USER 1001
ENTRYPOINT ["./application", "-Dquarkus.http.host=0.0.0.0"]