# tsoc-go-container **Repository Path**: purofle/tsoc-go-container ## Basic Information - **Project Name**: tsoc-go-container - **Description**: OpenCloudOS 9 平台 Go 应用容器化构建工具,裴雨果作品 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-04 - **Last Updated**: 2025-10-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # tsoc-go-container ## 介绍 OpenCloudOS 9 平台 Go 应用容器化构建工具,裴雨果作品 ## 项目计划书 ### 原始问题初步分析 1. 基础镜像选择复杂:安全性与轻量化 计划按照题目期望内容选用 [OpenCloudOS 9](https://mirrors.opencloudos.tech/opencloudos/9.2/images/docker/x86_64/20250421.0/) 或 Alpine 作为基础镜像 2. 依赖管理低效:无法分析代码中使用的资源文件(配置文件:/etc/xx.conf) 不支持CGO项目依赖分析(CGO引入的代码库)。 将其拆分为两个解决方案: 1. 分析资源文件计划使用 eBPF 动态分析 Linux 系统调用来实现。 2. 通过 `ldd` 分析项目的动态链接库从而实现对 CGO 依赖的分析。 ### 项目整体设计 & 计划方案 1. 容器化方案计划直接使用 [containerd](https://github.com/containerd/containerd) 进行实现,避免反复造轮子。 2. 对于期望内容部分的“支持动态调整镜像大小”,暂时计划采用 [docker 类似的 layers](https://docs.docker.com/get-started/docker-concepts/building-images/understanding-image-layers/) 设计。 3. 动态依赖分析:使用 eBPF 捕捉系统调用实现,在侦测到相关文件后,自动修改容器配置以实现一键部署。 4. 静态依赖分析:计划参考 Golang 源码中 [analysis 部分](https://cs.opensource.google/go/go/+/master:src/cmd/vendor/golang.org/x/tools/go/analysis/analysis.go) 部分进行实现,有待研究。 5. 运行项目的单元测试,结合动态依赖分析,同时进行代码覆盖率分析。 ### 赛题难点 - 动态依赖分析与静态依赖分析的结合,如何实现对依赖关系的准确捕捉与分析。 - eBPF 分析的集成。 - 容器镜像的层次化设计与动态调整。 ### 项目时间规划 - **第1周**:实现将 Golang 项目容器化功能,实现基于配置文件的容器镜像构建。 - **第2周**:实现对 CGO 项目的依赖静态/动态分析,确保容器化支持 CGO 依赖。 - **第3周**:实现 eBPF 动态分析,捕捉系统调用并自动修改容器配置。 - **第4周**:实现容器镜像的层次化设计,整合上述功能,在 OpenCloudOS 9 平台上测试并优化。