| 123456789101112131415161718192021222324252627282930313233 |
- package internal
- import (
- "context"
- "fmt"
- "github.com/docker/docker/client"
- )
- // GetContainerIPAddress returns the first non-empty IP address of the container with the given name.
- // It returns the IP address as a string or an error.
- func GetContainerIPAddress(containerName string) (string, error) {
- ctx := context.Background()
- cli, err := client.NewClientWithOpts(client.FromEnv)
- if err != nil {
- return "", err
- }
- // Get container details
- containerJSON, err := cli.ContainerInspect(ctx, containerName)
- if err != nil {
- return "", err
- }
- // Loop through all networks and return the first IP address found
- for _, net := range containerJSON.NetworkSettings.Networks {
- if net.IPAddress != "" {
- return net.IPAddress, nil
- }
- }
- return "", fmt.Errorf("no IP address found for container %q", containerName)
- }
|