Commit 386670ca authored by duanjinfei's avatar duanjinfei

update use container port

parent 9999e03d
...@@ -166,7 +166,7 @@ func (t *TaskWorker) ComputeTaskHandler(taskMsg *nodeManagerV1.PushTaskMessage) ...@@ -166,7 +166,7 @@ func (t *TaskWorker) ComputeTaskHandler(taskMsg *nodeManagerV1.PushTaskMessage)
t.ExecTaskIdIsFinished.Store(taskMsg.TaskId, true) t.ExecTaskIdIsFinished.Store(taskMsg.TaskId, true)
return return
} }
running, _, _ := t.foundImageIsRunning(taskOp.taskCmd.ImageName) running, _ := t.foundImageIsRunning(taskOp.taskCmd.ImageName)
if !running { if !running {
taskOp.taskCmd.DockerCmd.HostIp = models.ZeroHost taskOp.taskCmd.DockerCmd.HostIp = models.ZeroHost
taskOp.taskCmd.DockerCmd.HostPort = t.getExternalPort() taskOp.taskCmd.DockerCmd.HostPort = t.getExternalPort()
...@@ -179,7 +179,7 @@ func (t *TaskWorker) ComputeTaskHandler(taskMsg *nodeManagerV1.PushTaskMessage) ...@@ -179,7 +179,7 @@ func (t *TaskWorker) ComputeTaskHandler(taskMsg *nodeManagerV1.PushTaskMessage)
} }
log.Infof("Started container with ID %s", containerId) log.Infof("Started container with ID %s", containerId)
} }
if err = taskOp.waitContainerRunning(t, taskOp.taskCmd.ImageName); err != nil { if err = taskOp.waitContainerRunning(t, taskOp.taskCmd.ImageName, uint16(taskOp.taskCmd.DockerCmd.ContainerPort)); err != nil {
taskOp.taskExecResult.TaskExecError = fmt.Sprintf("%s", err.Error()) taskOp.taskExecResult.TaskExecError = fmt.Sprintf("%s", err.Error())
t.ExecTaskIdIsFinished.Store(taskMsg.TaskId, true) t.ExecTaskIdIsFinished.Store(taskMsg.TaskId, true)
return return
...@@ -267,7 +267,7 @@ func (t *TaskWorker) foundTaskImage(taskCmd *models.TaskCmd) (imageId string) { ...@@ -267,7 +267,7 @@ func (t *TaskWorker) foundTaskImage(taskCmd *models.TaskCmd) (imageId string) {
return return
} }
func (t *TaskWorker) foundImageIsRunning(imageName string) (bool, string, uint16) { func (t *TaskWorker) foundImageIsRunning(imageName string) (bool, string) {
containers := t.DockerOp.ListContainer() containers := t.DockerOp.ListContainer()
for _, container := range containers { for _, container := range containers {
if container.Image == imageName && container.State == "running" { if container.Image == imageName && container.State == "running" {
...@@ -277,10 +277,10 @@ func (t *TaskWorker) foundImageIsRunning(imageName string) (bool, string, uint16 ...@@ -277,10 +277,10 @@ func (t *TaskWorker) foundImageIsRunning(imageName string) (bool, string, uint16
ip = endPoint.IPAddress ip = endPoint.IPAddress
log.Warn("Container network ip:", ip) log.Warn("Container network ip:", ip)
} }
return true, ip, container.Ports[0].PrivatePort return true, ip
} }
} }
return false, "", 0 return false, ""
} }
func (t *TaskWorker) checkLastTaskExecStatus(taskMsg *nodeManagerV1.PushTaskMessage) { func (t *TaskWorker) checkLastTaskExecStatus(taskMsg *nodeManagerV1.PushTaskMessage) {
...@@ -464,7 +464,7 @@ func (op *TaskOp) checkContainerHealthy(internalIp string, internalPort uint16) ...@@ -464,7 +464,7 @@ func (op *TaskOp) checkContainerHealthy(internalIp string, internalPort uint16)
return true, nil return true, nil
} }
func (op *TaskOp) waitContainerRunning(handler *TaskWorker, imageName string) error { func (op *TaskOp) waitContainerRunning(handler *TaskWorker, imageName string, containerPort uint16) error {
maxExecTime := op.GetMaxExecTime() maxExecTime := op.GetMaxExecTime()
log.WithField("maxExecTime", maxExecTime).Info("Waiting for container running", imageName) log.WithField("maxExecTime", maxExecTime).Info("Waiting for container running", imageName)
for { for {
...@@ -474,20 +474,20 @@ func (op *TaskOp) waitContainerRunning(handler *TaskWorker, imageName string) er ...@@ -474,20 +474,20 @@ func (op *TaskOp) waitContainerRunning(handler *TaskWorker, imageName string) er
log.Errorf("%s", "The maximum execution time for this task has been exceeded") log.Errorf("%s", "The maximum execution time for this task has been exceeded")
return fmt.Errorf("%s", "The maximum execution time for this task has been exceeded") return fmt.Errorf("%s", "The maximum execution time for this task has been exceeded")
} }
running, internalIp, internalPort := handler.foundImageIsRunning(imageName) running, internalIp := handler.foundImageIsRunning(imageName)
if !running { if !running {
continue continue
} }
if isMatch := strings.HasPrefix(op.taskCmd.ImageName, conf.GetConfig().ReplicateImageNameSuffix); isMatch { if isMatch := strings.HasPrefix(op.taskCmd.ImageName, conf.GetConfig().ReplicateImageNameSuffix); isMatch {
if isReqSuccess, err := op.checkContainerHealthy(internalIp, internalPort); err != nil { if isReqSuccess, err := op.checkContainerHealthy(internalIp, containerPort); err != nil {
log.WithField("err", err).Errorf("check container healthy failed") log.WithField("err", err).Errorf("check container healthy failed")
return fmt.Errorf("%s-%s", "check container healthy failed", err.Error()) return fmt.Errorf("%s-%s", "check container healthy failed", err.Error())
} else if !isReqSuccess { } else if !isReqSuccess {
continue continue
} }
} }
op.taskCmd.ApiUrl = fmt.Sprintf("http://%s:%d%s", internalIp, internalPort, op.taskCmd.ApiUrl) op.taskCmd.ApiUrl = fmt.Sprintf("http://%s:%d%s", internalIp, containerPort, op.taskCmd.ApiUrl)
log.Info("Container ports:", internalPort) log.Info("Container port:", containerPort)
log.WithField("ApiUrl", op.taskCmd.ApiUrl).Info("The image is not running") log.WithField("ApiUrl", op.taskCmd.ApiUrl).Info("The image is not running")
return nil return nil
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment