浏览代码

backend.local: Add CPU limits

Signed-off-by: Chris Crone <[email protected]>
Chris Crone 5 年之前
父节点
当前提交
47aa069a3d
共有 2 个文件被更改,包括 8 次插入0 次删除
  1. 4 0
      local/backend.go
  2. 4 0
      local/backend_test.go

+ 4 - 0
local/backend.go

@@ -171,6 +171,7 @@ func containerJSONToHostConfig(m *types.ContainerJSON) *containers.HostConfig {
 	return &containers.HostConfig{
 		AutoRemove:    m.HostConfig.AutoRemove,
 		RestartPolicy: restartPolicy,
+		CPULimit:      float64(m.HostConfig.Resources.NanoCPUs) / 1e9,
 	}
 }
 
@@ -216,6 +217,9 @@ func (ms *local) Run(ctx context.Context, r containers.ContainerConfig) error {
 	hostConfig := &container.HostConfig{
 		PortBindings: hostBindings,
 		AutoRemove:   r.AutoRemove,
+		Resources: container.Resources{
+			NanoCPUs: int64(r.CPULimit * 1e9),
+		},
 	}
 
 	created, err := ms.apiClient.ContainerCreate(ctx, containerConfig, hostConfig, nil, r.ID)

+ 4 - 0
local/backend_test.go

@@ -52,6 +52,9 @@ func TestToHostConfig(t *testing.T) {
 			RestartPolicy: container.RestartPolicy{
 				Name: "",
 			},
+			Resources: container.Resources{
+				NanoCPUs: 750000000,
+			},
 		},
 	}
 	m := &types.ContainerJSON{
@@ -65,6 +68,7 @@ func TestToHostConfig(t *testing.T) {
 	res := &containers.HostConfig{
 		AutoRemove:    true,
 		RestartPolicy: containers.RestartPolicyNone,
+		CPULimit:      0.75,
 	}
 	assert.DeepEqual(t, hc, res)
 }