RockyLinux9最小可用的多阶段构建镜像
要一个 RockyLinux9 最小可用的多阶段构建镜像,能编译并运行 go-sqlite3因为 go-sqlite3 需要 sqlite-devel (编译阶段) + sqlite-libs (运行阶段),所以我们只要保证 builder 和 runtime 两个阶段分别装对依赖就行。
最小化的Dockerfile
1 | # ---------- builder 阶段 ---------- |
解释
builder 阶段
sqlite-devel:编译 go-sqlite3 需要的头文件。gcc:编译 C 依赖。go build时CGO_ENABLED=1确保链接 C 库。
runtime 阶段
- 只需要
sqlite-libs,提供运行时动态库。 - 镜像小,避免带上不必要的
gcc和go工具链。
- 只需要