Godeps: bump docker2aci

It converts docker ports
This commit is contained in:
Iago López Galeiras
2015-06-02 20:56:33 +02:00
parent e58e40bf34
commit dbe39ba1c2
2 changed files with 60 additions and 5 deletions
+2 -2
View File
@@ -57,11 +57,11 @@
},
{
"ImportPath": "github.com/appc/docker2aci/lib",
"Rev": "52b5a4e299eb92c51c7b0e9596543b52e7540010"
"Rev": "06ed1491dee087e5a83984239e8e11577d8a6131"
},
{
"ImportPath": "github.com/appc/docker2aci/tarball",
"Rev": "52b5a4e299eb92c51c7b0e9596543b52e7540010"
"Rev": "06ed1491dee087e5a83984239e8e11577d8a6131"
},
{
"ImportPath": "github.com/appc/spec/aci",
+58 -3
View File
@@ -9,13 +9,13 @@ import (
"os"
"path"
"path/filepath"
"time"
"github.com/coreos/rkt/Godeps/_workspace/src/github.com/appc/docker2aci/tarball"
"strconv"
"strings"
"time"
"github.com/coreos/rkt/Godeps/_workspace/src/github.com/appc/docker2aci/lib/types"
"github.com/coreos/rkt/Godeps/_workspace/src/github.com/appc/docker2aci/lib/util"
"github.com/coreos/rkt/Godeps/_workspace/src/github.com/appc/docker2aci/tarball"
"github.com/coreos/rkt/Godeps/_workspace/src/github.com/appc/spec/aci"
"github.com/coreos/rkt/Godeps/_workspace/src/github.com/appc/spec/schema"
appctypes "github.com/coreos/rkt/Godeps/_workspace/src/github.com/appc/spec/schema/types"
@@ -183,6 +183,11 @@ func GenerateManifest(layerData types.DockerImageData, dockerURL *types.ParsedDo
return nil, err
}
app.Ports, err = convertPorts(dockerConfig.ExposedPorts, dockerConfig.PortSpecs)
if err != nil {
return nil, err
}
genManifest.App = app
}
}
@@ -201,6 +206,56 @@ func GenerateManifest(layerData types.DockerImageData, dockerURL *types.ParsedDo
return genManifest, nil
}
func convertPorts(dockerExposedPorts map[string]struct{}, dockerPortSpecs []string) ([]appctypes.Port, error) {
ports := []appctypes.Port{}
for ep := range dockerExposedPorts {
appcPort, err := parseDockerPort(ep)
if err != nil {
return nil, err
}
ports = append(ports, *appcPort)
}
if dockerExposedPorts == nil && dockerPortSpecs != nil {
util.Debug("warning: docker image uses deprecated PortSpecs field")
for _, ep := range dockerPortSpecs {
appcPort, err := parseDockerPort(ep)
if err != nil {
return nil, err
}
ports = append(ports, *appcPort)
}
}
return ports, nil
}
func parseDockerPort(dockerPort string) (*appctypes.Port, error) {
var portString string
proto := "tcp"
sp := strings.Split(dockerPort, "/")
if len(sp) < 2 {
portString = dockerPort
} else {
proto = sp[1]
portString = sp[0]
}
port, err := strconv.ParseUint(portString, 10, 0)
if err != nil {
return nil, fmt.Errorf("error parsing port %q: %v", portString, err)
}
appcPort := &appctypes.Port{
Name: *appctypes.MustACName(dockerPort),
Protocol: proto,
Port: uint(port),
}
return appcPort, nil
}
func convertVolumesToMPs(dockerVolumes map[string]struct{}) ([]appctypes.MountPoint, error) {
mps := []appctypes.MountPoint{}
dup := make(map[string]int)