[13th][Day21] scratch

scratch base image 建立最小 image

之前 build 的许多 image 都是经由 ubuntu:20.04 一起发布的
其实,一般的任务并不需要这麽多的 binary档 以及 package

可以试看看 scratch image 来建立一个瘦瘦的 image

准备一个 demo.c 档

#include <stdio.h>
void main(){
printf("statically built for demo");
}

准备一个 dockerfile

FROM scratch
ADD demo /
CMD ["/demo"]

scratch 是一个空的 image ,里面没有任何的 layer 在上面,非常轻量

编译 demo.c 成为执行档

docker container run --rm -v ${PWD}:/src -w /src gcc:7.2 gcc -static -o demo demo.c

看看执行档

ls -lh demo
file -b demo

https://ithelp.ithome.com.tw/upload/images/20210929/20119546qkvMfPmKXI.png
大小为 927K

从刚刚准备的 dockerfile build 一个 image

docker image build -t scratch-demo .

https://ithelp.ithome.com.tw/upload/images/20210929/201195462yUhXG42uW.png

run & 看看 image

docker container run --rm scratch-demo
docker images|grep scratch

https://ithelp.ithome.com.tw/upload/images/20210929/20119546l8U1LUxJ7m.png
大小为 949kB

这个 image 当中就只有 这个静态执行档,没有任何的作业系统 or 其他多安装的东西https://ithelp.ithome.com.tw/upload/images/20210929/20119546bzP3bKuHrE.png


<<:  【Day 14】if 条件的范例讲解

>>:  Day14 - 解析看板文章及显示

Day 9 合格了吗?

启动引擎,把车开回夜晚的车阵中,虽然可能只是处在车流中,默默无名的行驶着,或者快速的疾驶着,又或者处...

27.Copmuted vs Watcher

一般情况下,使用 computed 比起 watcher 更简洁,如下: new Vue({ dat...

IOS-App KVO(1)

Day29 1.KVO是什麽? KVO全名:Key-Value Observing(缩写:KVO)。...

《赖田捕手:追加篇》第 31 天:初始化 LINE BOT on Heroku

第 31 天:初始化 LINE BOT on Heroku 事实说来可笑:别试着和任何人讨论任何关於...

Day-24 一定会见面,Convolutional Neural Network (CNN)

我们在历经了各种风霜之後,总算走到了这里,在深度学习的路上的必修课,也就是 Convolution...