| package client | |
| import ( | |
| "context" | |
| "github.com/moby/moby/api/types/network" | |
| ) | |
| // NetworkConnectOptions represents the data to be used to connect a container to the | |
| // network. | |
| type NetworkConnectOptions struct { | |
| Container string | |
| EndpointConfig *network.EndpointSettings | |
| } | |
| // NetworkConnectResult represents the result of a NetworkConnect operation. | |
| type NetworkConnectResult struct { | |
| // Currently empty; placeholder for future fields. | |
| } | |
| // NetworkConnect connects a container to an existent network in the docker host. | |
| func (cli *Client) NetworkConnect(ctx context.Context, networkID string, options NetworkConnectOptions) (NetworkConnectResult, error) { | |
| networkID, err := trimID("network", networkID) | |
| if err != nil { | |
| return NetworkConnectResult{}, err | |
| } | |
| containerID, err := trimID("container", options.Container) | |
| if err != nil { | |
| return NetworkConnectResult{}, err | |
| } | |
| nc := network.ConnectRequest{ | |
| Container: containerID, | |
| EndpointConfig: options.EndpointConfig, | |
| } | |
| resp, err := cli.post(ctx, "/networks/"+networkID+"/connect", nil, nc, nil) | |
| defer ensureReaderClosed(resp) | |
| return NetworkConnectResult{}, err | |
| } |