桌面应用快捷方式
目前只有系统应用会自动在桌面新建快捷方式,其他自建应用不可以,建议可以手动添加,比如手动安装了 qbittorrent Docker 容器,直接在桌面新建容器访问网址快捷方式http://92.168.1.11:8999 这样
Docker-compose
-
docker-compose 功能能否直接做个 pull 功能呢?现在更新镜像还需要停止容器,这个有点难受
-
能否在 APP 增加个 docker 容器列表,方便查看和管理(docker-compose pull 功能在这里更方便)
-
增加一键重建 docker 容器功能,下面这两个个命令可以实现拉取新镜像,并使用原容器配置和新镜像重新生成容器,当然这只是我的思路,大佬会有更好的实现方式
// 获取容器配置
generateNewContainerCommand(String name, String image) async {
String command = "docker inspect --format='docker run -d "
"--name {{(slice .Name 1)}} {{if .HostConfig.Privileged}}--privileged {{end}}"
"{{range \$key, \$value := .Config.Labels}}--label {{\$key}}=\"{{\$value}}\" {{end}} "
"{{range \$index, \$value := .Config.Env}}--env {{\$value}} {{end}} "
"{{range \$index, \$value := .HostConfig.PortBindings}}-p {{(index \$value 0).HostPort}}:{{(index \$value 0).HostPort}} "
"{{end}} {{range \$index, \$value := .Mounts}}-v {{\$value.Source}}:{{\$value.Destination}} {{end}} "
"{{range \$network, \$details := .NetworkSettings.Networks}}--network {{\$network}} {{if \$details.IPAddress}}--ip {{\$details.IPAddress}} {{end}} {{end}} "
" $image' $name";
String newCommand = await run(command);
Logger.instance.i(newCommand);
results.add(newCommand);
update();
return newCommand;
}
// 拉取新镜像,停止容器并使用原配置重建
void rebuildContainer(String name, String image) async {
Logger.instance.i('正在重建容器:$name');
String newCommand = await generateNewContainerCommand(name, image);
String command =
'docker pull $image && docker stop $name && docker rm -f $name && $newCommand';
command = addProxy(command);
await execute(command);
await getContainerList();
update();
}
|