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