unbreakdocker.go 684 B

12345678910111213141516171819202122232425262728293031323334
  1. package internal
  2. import (
  3. "context"
  4. "log"
  5. "os"
  6. "github.com/docker/docker/api/types/network"
  7. "github.com/docker/docker/client"
  8. )
  9. // UnbreakDocker connects the container named after the current hostname
  10. // to the specified Docker network.
  11. func UnbreakDocker(networkName string) error {
  12. ctx := context.Background()
  13. cli, err := client.NewClientWithOpts(client.FromEnv)
  14. if err != nil {
  15. return err
  16. }
  17. hostname, err := os.Hostname()
  18. if err != nil {
  19. return err
  20. }
  21. err = cli.NetworkConnect(ctx, networkName, hostname, &network.EndpointSettings{})
  22. if err != nil {
  23. return err
  24. }
  25. log.Printf("Connected container %q to network %q\n", hostname, networkName)
  26. return nil
  27. }