Browse Source

Add ports publishing to run

Djordje Lukic 5 years ago
parent
commit
a1a5e1794b
3 changed files with 22 additions and 4 deletions
  1. 8 0
      azure/backend.go
  2. 12 2
      cli/cmd/run_opts.go
  3. 2 2
      containers/api.go

+ 8 - 0
azure/backend.go

@@ -94,10 +94,18 @@ func (cs *containerService) List(ctx context.Context) ([]containers.Container, e
 func (cs *containerService) Run(ctx context.Context, r containers.ContainerConfig) error {
 	var project compose.Project
 	project.Name = r.ID
+	var ports []types.ServicePortConfig
+	for _, p := range r.Ports {
+		ports = append(ports, types.ServicePortConfig{
+			Target:    p.Destination,
+			Published: p.Source,
+		})
+	}
 	project.Services = []types.ServiceConfig{
 		{
 			Name:  r.ID,
 			Image: r.Image,
+			Ports: ports,
 		},
 	}
 

+ 12 - 2
cli/cmd/run_opts.go

@@ -1,6 +1,7 @@
 package cmd
 
 import (
+	"strconv"
 	"strings"
 
 	"github.com/docker/api/containers"
@@ -16,9 +17,18 @@ func toPorts(ports []string) ([]containers.Port, error) {
 
 	for _, port := range ports {
 		parts := strings.Split(port, ":")
+		source, err := strconv.ParseUint(parts[0], 10, 32)
+		if err != nil {
+			return nil, err
+		}
+		destination, err := strconv.ParseUint(parts[1], 10, 32)
+		if err != nil {
+			return nil, err
+		}
+
 		result = append(result, containers.Port{
-			Source:      parts[0],
-			Destination: parts[1],
+			Source:      uint32(source),
+			Destination: uint32(destination),
 		})
 	}
 	return result, nil

+ 2 - 2
containers/api.go

@@ -18,8 +18,8 @@ type Container struct {
 }
 
 type Port struct {
-	Source      string
-	Destination string
+	Source      uint32
+	Destination uint32
 }
 
 type ContainerConfig struct {