mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-09-12 09:34:58 +08:00
72 lines
2.1 KiB
Go
72 lines
2.1 KiB
Go
package compose
|
|
|
|
import (
|
|
"github.com/1Panel-dev/1Panel/agent/buserr"
|
|
"github.com/1Panel-dev/1Panel/agent/global"
|
|
"github.com/1Panel-dev/1Panel/agent/utils/cmd"
|
|
"github.com/1Panel-dev/1Panel/agent/utils/common"
|
|
"time"
|
|
)
|
|
|
|
func checkCmd() error {
|
|
if global.CONF.DockerConfig.Command == "" {
|
|
dockerComposCmd := common.GetDockerComposeCommand()
|
|
if dockerComposCmd == "" {
|
|
return buserr.New("ErrDockerComposeCmdNotFound")
|
|
}
|
|
global.CONF.DockerConfig.Command = dockerComposCmd
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func Up(filePath string) (string, error) {
|
|
if err := checkCmd(); err != nil {
|
|
return "", err
|
|
}
|
|
stdout, err := cmd.RunDefaultWithStdoutBashCfAndTimeOut(global.CONF.DockerConfig.Command+" -f %s up -d", 20*time.Minute, filePath)
|
|
return stdout, err
|
|
}
|
|
|
|
func Down(filePath string) (string, error) {
|
|
if err := checkCmd(); err != nil {
|
|
return "", err
|
|
}
|
|
stdout, err := cmd.RunDefaultWithStdoutBashCfAndTimeOut(global.CONF.DockerConfig.Command+" -f %s down --remove-orphans", 20*time.Minute, filePath)
|
|
return stdout, err
|
|
}
|
|
|
|
func Stop(filePath string) (string, error) {
|
|
if err := checkCmd(); err != nil {
|
|
return "", err
|
|
}
|
|
stdout, err := cmd.RunDefaultWithStdoutBashCf(global.CONF.DockerConfig.Command+" -f %s stop", filePath)
|
|
return stdout, err
|
|
}
|
|
|
|
func Restart(filePath string) (string, error) {
|
|
if err := checkCmd(); err != nil {
|
|
return "", err
|
|
}
|
|
stdout, err := cmd.RunDefaultWithStdoutBashCf(global.CONF.DockerConfig.Command+" -f %s restart", filePath)
|
|
return stdout, err
|
|
}
|
|
|
|
func Operate(filePath, operation string) (string, error) {
|
|
if err := checkCmd(); err != nil {
|
|
return "", err
|
|
}
|
|
stdout, err := cmd.RunDefaultWithStdoutBashCf(global.CONF.DockerConfig.Command+" -f %s %s", filePath, operation)
|
|
return stdout, err
|
|
}
|
|
|
|
func DownAndUp(filePath string) (string, error) {
|
|
if err := checkCmd(); err != nil {
|
|
return "", err
|
|
}
|
|
stdout, err := cmd.RunDefaultWithStdoutBashCf(global.CONF.DockerConfig.Command+" -f %s down", filePath)
|
|
if err != nil {
|
|
return stdout, err
|
|
}
|
|
stdout, err = cmd.RunDefaultWithStdoutBashCf(global.CONF.DockerConfig.Command+" -f %s up -d", filePath)
|
|
return stdout, err
|
|
}
|