standard_init_Linux.go:211:exec user process caused "no such file or directory

最近项目需要进行Dockerfile打包镜像,进行了几次尝试,遇到的一些问题

1、docker环境安装,参考https://www.cnblogs.com/innocenter/p/15852809.html;

2、安装好docker之后,进行相关文件目录授权;

3、将所需文件放置同一目录下;

4、进行Dockerfile文件的修改

FROM fabletang/jre8-alpine
# 设置工作目录为/home/app  
WORKDIR /home/app  
  
# 将当前目录下的文件复制到容器的/home/app目录下  
COPY rxpg-guarantee.xjar rxpg-guarantee.xjar
COPY all all
COPY application.yml application.yml  


# 设置JAVA_OPTS环境变量,用于配置JVM参数  
# 你可以在这里添加你需要的JVM参数,例如内存设置等  
ENV JAVA_OPTS=""  
  
# 暴露应用程序将监听的端口,假设是8080  
EXPOSE 9110 
  
# 运行应用程序  
# 注意:确保JAR文件名和参数正确无误  
ENTRYPOINT ["java", "-Dloader.path=all", "-Dfile.encoding=utf-8", "-jar", "rxpg-guarantee.xjar", "--spring.config.location=application.yml"]

5、所需基础镜像包进行了多次修改最终选用上面的内容

    1)首先进行了jdk的基础镜像包的生成,但是制作javaweb镜像后启动报错表题内容

     

#1.指定基础镜像,并且必须是第一条指令
FROM scratch

#2.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
WORKDIR /usr/local/java
 
#3.一个复制命令,把jdk安装文件复制到镜像中,语法:ADD <src>... <dest>,注意:jdk*.tar.gz使用的是相对路径
ADD jdk-8u311-linux-x64.tar.gz /usr/local/java/
 
#4.配置环境变量
ENV JAVA_HOME=/usr/local/java/jdk1.8.0_311
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH
 
#5容器启动时需要执行的命令
CMD ["java","-version"]

,经过内容解读,发现jdk8生成的基础镜像缺失部分x86.so,后进行修改使用

fabletang/jre8-alpine
posted @ 2024-04-02 14:54  大日很忧伤  阅读(8)  评论(0编辑  收藏  举报