本文整理汇总了Golang中github.com/docker/docker/api/types/swarm.Service.Spec方法的典型用法代码示例。如果您正苦于以下问题:Golang Service.Spec方法的具体用法?Golang Service.Spec怎么用?Golang Service.Spec使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/docker/docker/api/types/swarm.Service
的用法示例。
在下文中一共展示了Service.Spec方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: serviceForUpdate
func serviceForUpdate(s *swarm.Service) {
ureplicas := uint64(1)
restartDelay := time.Duration(100 * time.Millisecond)
s.Spec = swarm.ServiceSpec{
TaskTemplate: swarm.TaskSpec{
ContainerSpec: swarm.ContainerSpec{
Image: "busybox:latest",
Command: []string{"/bin/top"},
},
RestartPolicy: &swarm.RestartPolicy{
Delay: &restartDelay,
},
},
Mode: swarm.ServiceMode{
Replicated: &swarm.ReplicatedService{
Replicas: &ureplicas,
},
},
UpdateConfig: &swarm.UpdateConfig{
Parallelism: 2,
Delay: 4 * time.Second,
FailureAction: swarm.UpdateFailureActionContinue,
},
}
s.Spec.Name = "updatetest"
}
示例2: serviceUpdate
func (s *DockerServer) serviceUpdate(w http.ResponseWriter, r *http.Request) {
s.swarmMut.Lock()
defer s.swarmMut.Unlock()
s.cMut.Lock()
defer s.cMut.Unlock()
if s.swarm == nil {
w.WriteHeader(http.StatusNotAcceptable)
return
}
id := mux.Vars(r)["id"]
var toUpdate *swarm.Service
for i := range s.services {
if s.services[i].ID == id || s.services[i].Spec.Name == id {
toUpdate = s.services[i]
break
}
}
if toUpdate == nil {
http.Error(w, "service not found", http.StatusNotFound)
return
}
var newSpec swarm.ServiceSpec
err := json.NewDecoder(r.Body).Decode(&newSpec)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
toUpdate.Spec = newSpec
s.setServiceEndpoint(toUpdate)
for i := 0; i < len(s.tasks); i++ {
if s.tasks[i].ServiceID != toUpdate.ID {
continue
}
_, contIdx, _ := s.findContainerWithLock(s.tasks[i].Status.ContainerStatus.ContainerID, false)
if contIdx != -1 {
s.containers = append(s.containers[:contIdx], s.containers[contIdx+1:]...)
}
s.tasks = append(s.tasks[:i], s.tasks[i+1:]...)
i--
}
s.addTasks(toUpdate, true)
err = s.runNodeOperation(s.swarmServer.URL(), nodeOperation{})
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
}
示例3: simpleTestService
func simpleTestService(s *swarm.Service) {
ureplicas := uint64(1)
restartDelay := time.Duration(100 * time.Millisecond)
s.Spec = swarm.ServiceSpec{
TaskTemplate: swarm.TaskSpec{
ContainerSpec: swarm.ContainerSpec{
Image: "busybox:latest",
Command: []string{"/bin/top"},
},
RestartPolicy: &swarm.RestartPolicy{
Delay: &restartDelay,
},
},
Mode: swarm.ServiceMode{
Replicated: &swarm.ReplicatedService{
Replicas: &ureplicas,
},
},
}
s.Spec.Name = "top"
}