.
├── .cnb.yml
├── Dockerfile
├── README.md
├── scripts/
│ ├── check_project_files.sh
│ └── run_protenix_inference.sh
└── 赛题/
把代码推到 CNB 后,打一个 tag 来触发镜像构建:
git tag protenix-v1
git push origin protenix-v1
.cnb.yml 的 tag_push 会执行:
docker build -t ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest .
docker push ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest
也就是用当前这个 Dockerfile 构建镜像,并推送到 CNB Docker 制品库。
镜像构建成功后,点击 CNB 页面里的「云原生开发」或 VS Code 工作区入口。
.cnb.yml 会直接拉取:
${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest
这样就不用每次打开工作区都重新安装 Protenix。
在工作区终端里:
mkdir -p 赛题
ls -lah 赛题
把比赛 .json 文件上传到:
./赛题/
推荐先用一个采样,省显存:
SAMPLE_NUM=1 /opt/saisfold/run_protenix_inference.sh
也可以执行仓库里的脚本:
SAMPLE_NUM=1 bash scripts/run_protenix_inference.sh
输出文件:
protenix_outputs/output.zip
本地机器需要 NVIDIA GPU、Docker、NVIDIA Container Toolkit。
docker build -t saisfold-protenix .
docker run --rm -it --gpus all \
-v "$PWD:/workspace" \
-w /workspace \
saisfold-protenix \
bash -lc 'SAMPLE_NUM=1 /opt/saisfold/run_protenix_inference.sh'
因为 Dockerfile 里要安装 CUDA 基础环境、Python 依赖和 Protenix。慢的是构建镜像这一步。构建并推送到 CNB 制品库以后,后续云原生开发直接拉镜像,启动会快很多。
当你修改了 Dockerfile、Protenix 版本、脚本逻辑,或者想重新生成镜像时,重新打 tag:
git tag protenix-v2
git push origin protenix-v2