编写 Dockerfile
Dockerfile 组织方法
要打 造超级富容器,最重要的还是编写 Dockerfile
,富容器的 Dockerfile
比较特殊,因为需要安装很多依赖,涉及的脚本可能很多,如果都直接写到 Dockerfile
中,一般会超出最大的 layer 数量限制,最主要还是维护起来很麻烦。
可以将各种操作拆分成许多脚本文件,然后在 Dockerfile
中拷贝脚本文件进去执行,这样维护起来就很简单,需要改哪部分内容就直接进对应的脚本文件中改就行了。然后将需要拷贝的配置文件,按照文件最终被拷贝进容器的目录结构存放,在 Dockerfile
中执行 rsync 的脚本将配置文件保持目录结构同步过去。
脚本文件
我将所有脚本放到了 scripts
目录,目录结构:
scripts
├── 3rd-tools.sh
├── basic.sh
├── download-and-install.sh
├── final.sh
├── kubectl.sh
├── lang
│ ├── c-cpp.sh
│ ├── go.sh
│ ├── java.sh
│ ├── julia.sh
│ ├── lua.sh
│ ├── nodejs.sh
│ ├── php.sh
│ ├── python.sh
│ ├── ruby.sh
│ └── rust.sh
└── sync-config.sh