From 0debb865cc64d47eafd37f9ac47c54e8169e5050 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A1=BB=E6=88=90?= Date: Sun, 30 May 2021 19:06:46 +0800 Subject: [PATCH 1/6] =?UTF-8?q?:memo:=20=E6=96=B0=E5=A2=9E=E6=BC=94?= =?UTF-8?q?=E7=A4=BA=E7=8E=AF=E5=A2=83=20&=20=E6=96=B0=E5=A2=9E=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E6=8C=81=E4=B9=85=E5=8C=96=E7=9A=84=E5=A4=87=E4=BB=BD?= =?UTF-8?q?=E7=9A=84=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 方法 --- README.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 925c812..f2eef6d 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) -
- -
+ + +![xxx](./img/icon.png) **SimpleDocker** 是一个简单的Docker控制面板,致力于可以让用户更方便、更无障碍、更舒适的使用Docker,其界面简洁、操作便捷,功能强大,可以带来更好地运维体验。 @@ -11,6 +11,12 @@ > 🎉 🔥 ✨ 新发布的 V0.0.6 新增容器备份到本地、查看容器Inspect的功能以及修复若干BUG +## 演示网站 + 1. 演示环境 [http://docker.zhoutao123.com](http://docker.zhoutao123.com) + 2. 账号: admin 密码: 123456 + 3. 演示环境,请勿删除/停止/暂停 simpledocker-xxxx 开头的容器,否则可能造成服务异常 + 4. 如果演示环境无法登录或者无法使用,请及时创建Issue联系我 + ## 背景 @@ -51,7 +57,7 @@ Docker是目前一种非常主流的容器化方案,支持非常多的特性 1. 确保Docker & DockerCompose 已经部署并且启动成功,如果docker-compose 没有安装请参考官网 [https://docs.docker.com/compose/install/](https://docs.docker.com/compose/install/) 安装 2. 通过命令 `docker-compose version` 验证安装成功 -3. 在某个目录下创建文件 `docker-compose.yml` 其内容如下: +3. 在某个目录下创建文件 `docker-compose.yml` 其内容如下: ```yaml # yaml 配置实例 version: '3' @@ -63,14 +69,13 @@ services: ports: - "9091:4050" volumes: + - /tmp/simple-docker/back:/tmp/back - /var/run/docker.sock:/var/run/docker.sock depends_on: - redis ``` -> ** 如果需要持久化容器/镜像的备份文件,请在 volumes 标签下新增挂载 `- 宿主机目录:/tmp/back` ** - 3. 执行下面的脚本,会自动拉取镜像并启动在 9091 端口 -- Gitee From c1a782710d143f8d99fc535efb986ce9d29e72d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A1=BB=E6=88=90?= Date: Sun, 30 May 2021 22:14:06 +0800 Subject: [PATCH 2/6] =?UTF-8?q?:construction:=20=E6=96=B0=E5=A2=9EDockerSw?= =?UTF-8?q?arm=E6=9C=8D=E5=8A=A1=E7=9B=B8=E5=85=B3=E7=9A=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/docker/compose/compose.go | 7 +++ src/docker/swarm/swarm.go | 86 +++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 src/docker/compose/compose.go create mode 100644 src/docker/swarm/swarm.go diff --git a/src/docker/compose/compose.go b/src/docker/compose/compose.go new file mode 100644 index 0000000..822b1b7 --- /dev/null +++ b/src/docker/compose/compose.go @@ -0,0 +1,7 @@ +package compose + +import "github.com/astaxie/beego/logs" + +func init() { + logs.Info("尝试初始化Docker-Compose 文件") +} diff --git a/src/docker/swarm/swarm.go b/src/docker/swarm/swarm.go new file mode 100644 index 0000000..ce0c175 --- /dev/null +++ b/src/docker/swarm/swarm.go @@ -0,0 +1,86 @@ +package swarm + +import ( + "SimpleDocker/src/context" + "errors" + "github.com/astaxie/beego/logs" + "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/swarm" + "io/ioutil" +) + +func init() { + logs.Info("尝试初始化Docker Swarm...") +} + +/** 查询DockESwarm的服务列表 */ +func GetServiceList() ([]swarm.Service, error) { + optional := types.ServiceListOptions{} + return context.Cli.ServiceList(context.Ctx, optional) +} + +/** 查询制定服务的日志 */ +func GetServiceLogs(serviceId string) (string, error) { + if serviceId != "" { + return "", errors.New("服务ID不能为空") + } + logsOption := types.ContainerLogsOptions{} + closer, err := context.Cli.ServiceLogs(context.Ctx, serviceId, logsOption) + if err != nil { + return "", err + } + defer closer.Close() + bytes, err := ioutil.ReadAll(closer) + if err != nil { + return "", err + } + return string(bytes), nil +} + +/** 查询服务的 Inspect 信息 */ +func GetServiceInspect(serviceId string) (string, error) { + if serviceId != "" { + return "", errors.New("服务ID不能为空") + } + logs.Info("查询服务:{}的Inspect信息", serviceId) + options := types.ServiceInspectOptions{} + _, bytes, err := context.Cli.ServiceInspectWithRaw(context.Ctx, serviceId, options) + if err != nil { + return "", err + } + return string(bytes), nil +} + +/** 移除服务*/ +func RemoveService(serviceId string) error { + if serviceId != "" { + return errors.New("服务ID不能为空") + } + err := context.Cli.ServiceRemove(context.Ctx, serviceId) + if err != nil { + return err + } + return nil +} + +/** 更新服务 */ +func UpdateService(serviceId string) ([]string, error) { + if serviceId != "" { + return nil, errors.New("服务ID不能为空") + } + + info, _, err := context.Cli.ServiceInspectWithRaw(context.Ctx, serviceId, options) + if err != nil { + return nil, err + } + version := swarm.Version{Index: info.Version.Index + 1} + + // TODO: 更新Service的配置 + spec := swarm.ServiceSpec{} + options := types.ServiceUpdateOptions{} + response, err := context.Cli.ServiceUpdate(context.Ctx, serviceId, version, spec, options) + if err != nil { + return nil, err + } + return response.Warnings, nil +} -- Gitee From 842f27b8f5b0b7debe81b877e5209e952f27b146 Mon Sep 17 00:00:00 2001 From: awe Date: Sun, 30 May 2021 23:13:49 +0800 Subject: [PATCH 3/6] =?UTF-8?q?:memo:=20=E6=9B=B4=E6=96=B0README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f2eef6d..aa69ade 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ![xxx](./img/icon.png) -**SimpleDocker** 是一个简单的Docker控制面板,致力于可以让用户更方便、更无障碍、更舒适的使用Docker,其界面简洁、操作便捷,功能强大,可以带来更好地运维体验。 +**SimpleDocker** 是一个简单的Docker控制面板,致力于可以让用户更方便、更无障碍、更舒适的使用Docker,其界面简洁、操作便捷,功能强大,可以带来更好地运维体验。 **个人开发维护不易,麻烦给个 Star ✨ 鼓励一下作者,您的鼓励是我最大的动力 😛!!!** -- Gitee From 7bbacd72f1e0a6a1fffed1ed05a527cc4fa77c99 Mon Sep 17 00:00:00 2001 From: NOW_GO Date: Mon, 31 May 2021 13:05:57 +0800 Subject: [PATCH 4/6] =?UTF-8?q?:construction:=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=BC=96=E8=AF=91=E4=B8=8D=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/docker/swarm/swarm.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/docker/swarm/swarm.go b/src/docker/swarm/swarm.go index ce0c175..1e9eabd 100644 --- a/src/docker/swarm/swarm.go +++ b/src/docker/swarm/swarm.go @@ -69,6 +69,7 @@ func UpdateService(serviceId string) ([]string, error) { return nil, errors.New("服务ID不能为空") } + options := types.ServiceInspectOptions{} info, _, err := context.Cli.ServiceInspectWithRaw(context.Ctx, serviceId, options) if err != nil { return nil, err @@ -77,8 +78,8 @@ func UpdateService(serviceId string) ([]string, error) { // TODO: 更新Service的配置 spec := swarm.ServiceSpec{} - options := types.ServiceUpdateOptions{} - response, err := context.Cli.ServiceUpdate(context.Ctx, serviceId, version, spec, options) + options2 := types.ServiceUpdateOptions{} + response, err := context.Cli.ServiceUpdate(context.Ctx, serviceId, version, spec, options2) if err != nil { return nil, err } -- Gitee From fec37335b2f11d0004d52242db7434d94f3b8283 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A1=BB=E6=88=90?= Date: Fri, 4 Jun 2021 19:34:30 +0800 Subject: [PATCH 5/6] =?UTF-8?q?:memo:=20=E6=9B=B4=E6=96=B0readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index aa69ade..50f8f50 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,16 @@ [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) + +---- + +## 广告 +阿里巴巴本地生活前端团队大量招人,欢迎各位前端大佬踊跃推荐,大量HC,有需要的可以添加微信 zhoutao825638 +---- + -![xxx](./img/icon.png) +-- ![xxx](./img/icon.png) + **SimpleDocker** 是一个简单的Docker控制面板,致力于可以让用户更方便、更无障碍、更舒适的使用Docker,其界面简洁、操作便捷,功能强大,可以带来更好地运维体验。 -- Gitee From c49f5d998cbe4953fd27f4fc0ad72bb0fcde16ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A1=BB=E6=88=90?= Date: Mon, 14 Jun 2021 17:49:15 +0800 Subject: [PATCH 6/6] =?UTF-8?q?:sparkles:=20=E7=99=BB=E5=BD=95=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E6=96=B0=E5=A2=9E=E9=AA=8C=E8=AF=81=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 14 +++----------- build.sh | 2 +- ui/package.json | 1 + ui/src/views/Login.vue | 43 +++++++++++++++++++++++++++++++++++++++--- ui/yarn.lock | 14 +++++++++++--- 5 files changed, 56 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 50f8f50..6444c35 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,14 @@ [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) - - ----- - -## 广告 -阿里巴巴本地生活前端团队大量招人,欢迎各位前端大佬踊跃推荐,大量HC,有需要的可以添加微信 zhoutao825638 ----- - --- ![xxx](./img/icon.png) +![xxx](./img/icon.png) **SimpleDocker** 是一个简单的Docker控制面板,致力于可以让用户更方便、更无障碍、更舒适的使用Docker,其界面简洁、操作便捷,功能强大,可以带来更好地运维体验。 **个人开发维护不易,麻烦给个 Star ✨ 鼓励一下作者,您的鼓励是我最大的动力 😛!!!** -> 🎉 🔥 ✨ 新发布的 V0.0.6 新增容器备份到本地、查看容器Inspect的功能以及修复若干BUG +> 🎉 🔥 ✨ 新发布的 V0.0.7 新增登录界面验证码的功能 ## 演示网站 @@ -73,7 +65,7 @@ services: redis: image: redis:latest web: - image: registry.cn-hangzhou.aliyuncs.com/seven-tao/simple-docker:0.0.6 + image: registry.cn-hangzhou.aliyuncs.com/seven-tao/simple-docker:0.0.7 ports: - "9091:4050" volumes: diff --git a/build.sh b/build.sh index b3adb73..924b7a7 100755 --- a/build.sh +++ b/build.sh @@ -1,6 +1,6 @@ echo "编译后端....." -CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build App.go cp ./App ./build/App +CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build App.go echo "编译前端....." cd ui && yarn build diff --git a/ui/package.json b/ui/package.json index d254ac1..3623b49 100644 --- a/ui/package.json +++ b/ui/package.json @@ -14,6 +14,7 @@ "jwt-decode": "^3.1.2", "lodash": "^4.17.20", "vue": "^2.6.11", + "vue-captcha-code": "^1.0.2", "vue-json-viewer": "^2.2.19", "vue-router": "^3.2.0", "vue-terminal-ui": "^0.1.6", diff --git a/ui/src/views/Login.vue b/ui/src/views/Login.vue index eaca7c3..fdb4ab7 100644 --- a/ui/src/views/Login.vue +++ b/ui/src/views/Login.vue @@ -14,6 +14,20 @@ +
+ + + + +
+
@@ -40,18 +54,30 @@