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)
t.ExecTaskIdIsFinished.Store(taskMsg.TaskId, true)
return
}
running, _, _ := t.foundImageIsRunning(taskOp.taskCmd.ImageName)
running, _ := t.foundImageIsRunning(taskOp.taskCmd.ImageName)
if !running {
taskOp.taskCmd.DockerCmd.HostIp = models.ZeroHost
taskOp.taskCmd.DockerCmd.HostPort = t.getExternalPort()
......@@ -179,7 +179,7 @@ func (t *TaskWorker) ComputeTaskHandler(taskMsg *nodeManagerV1.PushTaskMessage)
}
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())
t.ExecTaskIdIsFinished.Store(taskMsg.TaskId, true)
return
......@@ -267,7 +267,7 @@ func (t *TaskWorker) foundTaskImage(taskCmd *models.TaskCmd) (imageId string) {
return
}
func (t *TaskWorker) foundImageIsRunning(imageName string) (bool, string, uint16) {
func (t *TaskWorker) foundImageIsRunning(imageName string) (bool, string) {
containers := t.DockerOp.ListContainer()
for _, container := range containers {
if container.Image == imageName && container.State == "running" {
......@@ -277,10 +277,10 @@ func (t *TaskWorker) foundImageIsRunning(imageName string) (bool, string, uint16
ip = endPoint.IPAddress
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) {
......@@ -464,7 +464,7 @@ func (op *TaskOp) checkContainerHealthy(internalIp string, internalPort uint16)
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()
log.WithField("maxExecTime", maxExecTime).Info("Waiting for container running", imageName)
for {
......@@ -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")
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 {
continue
}
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")
return fmt.Errorf("%s-%s", "check container healthy failed", err.Error())
} else if !isReqSuccess {
continue
}
}
op.taskCmd.ApiUrl = fmt.Sprintf("http://%s:%d%s", internalIp, internalPort, op.taskCmd.ApiUrl)
log.Info("Container ports:", internalPort)
op.taskCmd.ApiUrl = fmt.Sprintf("http://%s:%d%s", internalIp, containerPort, op.taskCmd.ApiUrl)
log.Info("Container port:", containerPort)
log.WithField("ApiUrl", op.taskCmd.ApiUrl).Info("The image is not running")
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