mirror of
https://github.com/arch3rPro/1Panel-Appstore.git
synced 2026-06-10 00:19:38 +08:00
2.3 KiB
2.3 KiB
使用示例
从本地 compose 生成草稿
cd /root/github/1Panel-Appstore/skills
./scripts/generate-app.sh \
--app-key demo-app \
--name DemoApp \
--service web \
--version 1.25.3 \
--icon-mode skip \
--output ../apps \
/tmp/demo-compose.yml
生成结构:
../apps/demo-app/
├── data.yml
├── README.md
├── README_en.md
├── latest/
│ ├── data.yml
│ └── docker-compose.yml
└── 1.25.3/
├── data.yml
└── docker-compose.yml
latest/docker-compose.yml 使用 image: ...:latest,1.25.3/docker-compose.yml 使用 image: ...:1.25.3。
docker run 输入
./scripts/generate-app.sh \
--app-key nginx-demo \
--name NginxDemo \
--version 1.25.3 \
--icon-mode cache-only \
"docker run -d --name nginx-demo -p 8080:80 -v ./data/html:/usr/share/nginx/html nginx:1.25.3"
脚本会解析:
--name作为服务名候选。-p/--publish生成PANEL_APP_PORT_*表单字段。-v/--volume保留到 compose 的volumes。-e/--env和--env-file保留到 compose。- 镜像 tag 作为版本候选;显式
--version优先。
GitHub 输入
./scripts/generate-app.sh \
--app-key github-demo \
--name GitHubDemo \
--service web \
--version 1.2.3 \
--icon-mode skip \
https://github.com/example/demo
脚本会尝试仓库默认分支、main、master 下的常见 compose 路径;如果没有找到 compose,会从 README 中尝试提取单行 docker run 命令。生成结果仍需要人工审查。
图标处理
# 只使用缓存,不访问网络
./scripts/download-icon.sh --mode cache-only nginx ../apps/nginx-demo/logo.png
# 已知准确图标 URL 时强制下载,失败则退出非零
./scripts/download-icon.sh --mode required --url https://example.com/nginx.png nginx ../apps/nginx-demo/logo.png
脚本不会创建占位图。找不到真实图标时,应保留缺失状态并在交付说明中指出。
验证
./scripts/generate-app.sh --check-deps
./scripts/validate-app.sh ../apps/demo-app
./tests/run_all.sh
validate-app.sh 负责结构和常见规则检查;仍需要人工检查 README、分类标签、架构支持、默认端口和多服务依赖是否合理。