func Ports(ports ...int) Option {
	return func(c *Container) {
		var p []string
		for _, port := range ports {
			p = append(p, fmt.Sprintf("%d", port))
		}
		c.ports = p
	}
}
Ports function automatically combines port bindings and exposes ports of the
container
package test
import (
	"fmt"
	"os"
)
type Option func(*Container)
func Name(name string) Option {
	return func(c *Container) {
		c.name = name
	}
}
func ImageRepository(name string) Option {
	return func(c *Container) {
		c.imageRespository = name
	}
}
func ImageTagFromEnv(envName, defaultTag string) Option {
	return func(c *Container) {
		if tag, ok := os.LookupEnv(envName); ok {
			c.imageTag = tag
		} else {
			c.imageTag = defaultTag
		}
	}
}
func ImageTag(tag string) Option {
	return func(c *Container) {
		c.imageTag = tag
	}
}
type PortBinding struct {
	ContainerPort string
	HostPort      string
}
func HostPortBindings(bindings ...PortBinding) Option {
	return func(c *Container) {
		for _, binding := range bindings {
			c.addHostPortBinding(binding.ContainerPort, binding.HostPort)
		}
	}
}
func ExposePorts(ports ...string) Option {
	return func(c *Container) {
		for _, port := range ports {
			c.exposePort(port)
		}
	}
}