|
|
@@ -1,54 +0,0 @@
|
|
|
-package run
|
|
|
-
|
|
|
-import (
|
|
|
- "fmt"
|
|
|
- "strconv"
|
|
|
- "strings"
|
|
|
-
|
|
|
- "github.com/docker/api/containers"
|
|
|
-)
|
|
|
-
|
|
|
-type runOpts struct {
|
|
|
- name string
|
|
|
- publish []string
|
|
|
- volumes []string
|
|
|
-}
|
|
|
-
|
|
|
-func toPorts(ports []string) ([]containers.Port, error) {
|
|
|
- var result []containers.Port
|
|
|
-
|
|
|
- for _, port := range ports {
|
|
|
- parts := strings.Split(port, ":")
|
|
|
- if len(parts) != 2 {
|
|
|
- return nil, fmt.Errorf("unable to parse ports %q", port)
|
|
|
- }
|
|
|
- source, err := strconv.Atoi(parts[0])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- destination, err := strconv.Atoi(parts[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- result = append(result, containers.Port{
|
|
|
- HostPort: uint32(source),
|
|
|
- ContainerPort: uint32(destination),
|
|
|
- })
|
|
|
- }
|
|
|
- return result, nil
|
|
|
-}
|
|
|
-
|
|
|
-func (r *runOpts) toContainerConfig(image string) (containers.ContainerConfig, error) {
|
|
|
- publish, err := toPorts(r.publish)
|
|
|
- if err != nil {
|
|
|
- return containers.ContainerConfig{}, err
|
|
|
- }
|
|
|
-
|
|
|
- return containers.ContainerConfig{
|
|
|
- ID: r.name,
|
|
|
- Image: image,
|
|
|
- Ports: publish,
|
|
|
- Volumes: r.volumes,
|
|
|
- }, nil
|
|
|
-}
|