diff --git a/agent/agentcontainers/containers_dockercli.go b/agent/agentcontainers/containers_dockercli.go index 27e5f835d5adb..5218153bde427 100644 --- a/agent/agentcontainers/containers_dockercli.go +++ b/agent/agentcontainers/containers_dockercli.go @@ -253,11 +253,16 @@ func (dcl *DockerCLILister) List(ctx context.Context) (codersdk.WorkspaceAgentLi return codersdk.WorkspaceAgentListContainersResponse{}, xerrors.Errorf("scan docker ps output: %w", err) } + res := codersdk.WorkspaceAgentListContainersResponse{ + Containers: make([]codersdk.WorkspaceAgentDevcontainer, 0, len(ids)), + Warnings: make([]string, 0), + } dockerPsStderr := strings.TrimSpace(stderrBuf.String()) + if dockerPsStderr != "" { + res.Warnings = append(res.Warnings, dockerPsStderr) + } if len(ids) == 0 { - return codersdk.WorkspaceAgentListContainersResponse{ - Warnings: []string{dockerPsStderr}, - }, nil + return res, nil } // now we can get the detailed information for each container @@ -273,13 +278,10 @@ func (dcl *DockerCLILister) List(ctx context.Context) (codersdk.WorkspaceAgentLi return codersdk.WorkspaceAgentListContainersResponse{}, xerrors.Errorf("run docker inspect: %w", err) } - res := codersdk.WorkspaceAgentListContainersResponse{ - Containers: make([]codersdk.WorkspaceAgentDevcontainer, len(ins)), - } - for idx, in := range ins { + for _, in := range ins { out, warns := convertDockerInspect(in) res.Warnings = append(res.Warnings, warns...) - res.Containers[idx] = out + res.Containers = append(res.Containers, out) } if dockerPsStderr != "" {