From 4b0d2d7d3d6852c79074b17c77812c8edccd7106 Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Thu, 17 Nov 2022 16:33:03 -0500 Subject: [PATCH] wip --- service/docker_base/common.go | 24 --------- service/docker_base/model.go | 9 ---- service/docker_base/mysql.go | 93 ----------------------------------- 3 files changed, 126 deletions(-) delete mode 100644 service/docker_base/common.go delete mode 100644 service/docker_base/model.go delete mode 100644 service/docker_base/mysql.go diff --git a/service/docker_base/common.go b/service/docker_base/common.go deleted file mode 100644 index 1541fe4..0000000 --- a/service/docker_base/common.go +++ /dev/null @@ -1,24 +0,0 @@ -package docker_base - -import "github.com/IceWhaleTech/CasaOS/model" - -//过滤mysql关键字 -func MysqlFilter(c MysqlConfig, envs model.EnvArray) model.EnvArray { - for i := 0; i < len(envs); i++ { - switch envs[i].Value { - case "$MYSQL_HOST": - envs[i].Value = c.DataBaseHost - case "$MYSQL_PORT": - envs[i].Value = c.DataBasePort - case "$MYSQL_USERNAME": - envs[i].Value = c.DataBaseUser - case "$MYSQL_PASSWORD": - envs[i].Value = c.DataBasePassword - case "$MYSQL_DBNAME": - envs[i].Value = c.DataBaseDB - case "$MYSQL_HOST_AND_PORT": - envs[i].Value = c.DataBaseHost + ":" + c.DataBasePort - } - } - return envs -} diff --git a/service/docker_base/model.go b/service/docker_base/model.go deleted file mode 100644 index 3413577..0000000 --- a/service/docker_base/model.go +++ /dev/null @@ -1,9 +0,0 @@ -package docker_base - -type MysqlConfig struct { - DataBaseHost string `json:"database_host"` - DataBasePort string `json:"database_port"` - DataBaseUser string `json:"database_user"` - DataBasePassword string `json:"data_base_password"` - DataBaseDB string `json:"data_base_db"` -} diff --git a/service/docker_base/mysql.go b/service/docker_base/mysql.go deleted file mode 100644 index 565a18a..0000000 --- a/service/docker_base/mysql.go +++ /dev/null @@ -1,93 +0,0 @@ -package docker_base - -import ( - "context" - "github.com/docker/docker/api/types" - "github.com/docker/docker/api/types/container" - "github.com/docker/docker/api/types/filters" - "github.com/docker/docker/api/types/network" - client2 "github.com/docker/docker/client" - "time" -) - -//创建一个mysql数据库 -func MysqlCreate(mysqlConfig MysqlConfig, dbId string, cpuShares int64, memory int64) (string, error) { - const imageName = "mysql" - const imageVersion = "8" - const imageNet = "oasis" - - cli, err := client2.NewClientWithOpts(client2.FromEnv) - if err != nil { - return "", err - } - defer cli.Close() - _, err = cli.ImagePull(context.Background(), imageName+":"+imageVersion, types.ImagePullOptions{}) - - isExist := true - //检查到镜像才继续 - for isExist { - filter := filters.NewArgs() - filter.Add("before", imageName+":"+imageVersion) - list, e := cli.ImageList(context.Background(), types.ImageListOptions{Filters: filter}) - if e == nil && len(list) > 0 { - isExist = false - } - time.Sleep(time.Second) - } - - var envArr = []string{"MYSQL_ROOT_PASSWORD=" + mysqlConfig.DataBasePassword, "MYSQL_DATABASE=" + mysqlConfig.DataBaseDB} - - res := container.Resources{} - if cpuShares > 0 { - res.CPUShares = cpuShares - } - if memory > 0 { - res.Memory = memory << 20 - } - - rp := container.RestartPolicy{} - - rp.Name = "always" - - config := &container.Config{ - Image: imageName, - Labels: map[string]string{"version": imageVersion, "author": "official"}, - Env: envArr, - } - hostConfig := &container.HostConfig{Resources: res, RestartPolicy: rp, NetworkMode: container.NetworkMode(imageNet)} - - containerCreate, err := cli.ContainerCreate(context.Background(), - config, - hostConfig, - &network.NetworkingConfig{EndpointsConfig: map[string]*network.EndpointSettings{imageNet: {NetworkID: ""}}}, - nil, - dbId) - - containerId := containerCreate.ID - - //启动容器 - err = cli.ContainerStart(context.Background(), dbId, types.ContainerStartOptions{}) - if err != nil { - return containerId, err - } - - return containerId, nil - -} - -func MysqlDelete(dbId string) error { - - cli, err := client2.NewClientWithOpts(client2.FromEnv) - if err != nil { - return err - } - defer cli.Close() - err = cli.ContainerStop(context.Background(), dbId, nil) - if err != nil { - return err - } - - err = cli.ContainerRemove(context.Background(), dbId, types.ContainerRemoveOptions{}) - return err - -}