kubernetes离线安装包,仅需三步

如何让镜像尽可能小

很容器想到from scratch, 就是没任何基础镜像

FROM scratch
COPY p /
ENTRYPOINT ["/p"]

有几点要注意:

  • ENTRYPOINT 或者CMD 必须要用[]这种模式,如果直接/p会用sh去启动,而scratch没有shell导致失败
  • 二进制程序必须静态编译,也就是不能依赖libc什么的动态库

动态编译的bin程序:

[root@dev-86-205 ci-sftp]# ldd p
    linux-vdso.so.1 =>  (0x00007ffd6ef7b000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa28f94e000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fa28f58d000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fa28fb72000)

这种情况下出来的bin程序可能会出现问题:

standard_init_linux.go:175: exec user process caused "no such file or directory”

静态编译的bin程序,这是我们scratch需要的:

[root@dev-86-205 ci-sftp]# ldd p
    不是动态可执行文件

golang中静态编译命令:

go build --ldflags '-linkmode external -extldflags "-static”'

如果不静态编译那可能得拷贝一堆动态库到镜像中,很多lowB就是那么做的

扫码关注sealyun

探讨可加QQ群:98488045

最新文章

  1. JS组件系列——BootstrapTable 行内编辑解决方案:x-editable
  2. CentOS下用yum配置php+mysql+apache(LAMP)
  3. MySQL 死锁问题分析
  4. 安装生物信息学软件-bowtie2
  5. jQuery DataTables 行获取
  6. CodeForces 300A Array
  7. Makefile第三讲:终端传值给Makefile、Makefile传值给C++代码
  8. 深入浅出scanf、getcha、gets、cin函数
  9. Send竞争对手:百度云一小时,QQ超大附件最多支持2G,邮件附件20M到50M不等(附国外所有storage列表)——痛点是,最大传输2G,最大容量只有3G(和微云不是一回事),转存到微云文件不能超过1G
  10. BCGControlBar使用方法(转)
  11. Standford机器学习 聚类算法(clustering)和非监督学习(unsupervised Learning)
  12. 201521123051《Java程序设计》第十四周学习总结
  13. row_number() over()分页查询
  14. 固件远程更新之STARTUPE2原语(fpga控制flash)
  15. java 8 双冒号运算符
  16. day17--JQuery选择器
  17. mysql不会使用索引,导致全表扫描情况
  18. PAT 乙级 1060 爱丁顿数(25) C++版
  19. Python中os模块使用方法
  20. Ubuntu 下Apache安装和配置

热门文章

  1. 使用vue-print-nb插件页面空白以及打印没有样式问题
  2. 源码解读·RT-Thread操作系统从开机到关机
  3. HDU 1561:The more, The Better(有依赖的树型背包)
  4. django基础知识之csrf:
  5. APM系统SkyWalking介绍
  6. 不要天真了,这些简历HR一看就知道你是培训的,质量不佳的那种
  7. Perm排列计数(新博客试水,写的不好,各路大神见谅)
  8. Java底层技术系列文章-总揽
  9. EPPLUS 实现excel报表数据及公式填充
  10. python爬虫笔记之re.compile.findall()