1.不加[]代表用 /bin/sh 执行 /opt/app/example ,由于 scratch 是空镜像,所以会报错:exec: "/bin/sh": stat /bin/sh: no such file or directory: unknown.(加[]代表为 ENTRYPOINT 提供参数)
2.去掉 CGO_ENABLED=0 启动容器后会提示:exec user process caused: no such file or directory,alpine 更换 ubuntu 后运行正常。原因:因为 alpine 镜像中没有 glibc ,不禁用 CGO 的话编译会失败,不会产生二进制文件,所以最终CMD ["/opt/app/example"] 会报错:no such file or directory(而 ubuntu 本身包含 glibc ,不禁用 CGO 编译也是正常的)
作者回复: 👍🏻非常正确!
共 2 条评论
12
农民园丁
2023-01-09来自广东
请问老师,spring-boot的构建方法环能优化吗?之前的占了284MB。
作者回复: 可以的,下一节课的内容有提到。
1
jeffery
2023-01-09来自广东
问题1 更改后 image 可以正常构建 但run报错
docker: Error response from daemon: failed to create shim: OCI runtime create failed: runc create failed: unable to start container process: exec: "/bin/sh": stat /bin/sh: no such file or directory: unknown.
ERRO[0000] error waiting for container: context canceled
问题2 删除CGO_ENABLED=0 后启动
docker run --publish 8080:8080 delete
exec /opt/app/example: no such file or directory
镜像构建后大小
delete latest d968f205c52d 8 minutes ago 13.9MB
delete1 latest cb6a0e65cda9 34 minutes ago 84.7MB
Alpine 不带常规debug 命令