• includestdio.h
    2023-01-09 来自广东
    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 命令

    作者回复: 👍🏻可以继续深入调查一下第一个问题为什么两种写法会有差异。

    共 3 条评论
    1
  • Kyle
    2023-04-20 来自湖北
    这一期听得相当爽,可以说是极致的体积优化了

    作者回复: 感谢对课程的认可!

    
    
  • 0ck0
    2023-01-11 来自北京
    比较关心 python 业务的镜像如何优化

    作者回复: 下一讲里有提到,主要是选择合适的基础镜像。

    
    
  • 争光 Alan
    2023-01-10 来自广东
    Alpine 能压缩大小,但也会引入很多问题 1. 新的操作系统的安全补丁维护 2. bug,比如glibc的导致的很多问题 这一块再具体落地的时候怎么抉择呢?

    作者回复: 是的,Alpine 的c 语言库差异会导致很多奇怪的问题。 生产实践上还是推荐用标准的 Linux 发行版镜像,比如 ubuntu,debian 之类的,此外,slim 版本的镜像在大部分场景已经很小了,没必要追求极限的镜像大小。

    
    
  • 橙汁
    2023-01-09 来自北京
    我艹 scrtch是什么,竟然还有这种镜像 学到了,目前项目用啥镜像的都有 debian alpine ubuntu 真是乱七八糟的,镜像就是还缺点基础工具 比如ping ip 等这些不同底包里面的基础包也不同,安装后镜像其实也挺大,还比较期待周三 alpine的glibc和m什么的之前就一直没懂
    
    