diff --git a/app/docker/views/containers/create/createContainerController.js b/app/docker/views/containers/create/createContainerController.js
index cca719cf0..d45b989be 100644
--- a/app/docker/views/containers/create/createContainerController.js
+++ b/app/docker/views/containers/create/createContainerController.js
@@ -19,6 +19,8 @@ function ($q, $scope, $state, $timeout, $transition$, $filter, Container, Contai
NodeName: null
};
+ $scope.extraNetworks = {};
+
$scope.state = {
formValidationError: '',
actionInProgress: false
@@ -317,7 +319,7 @@ function ($q, $scope, $state, $timeout, $transition$, $filter, Container, Contai
var bindings = [];
for (var p in $scope.config.HostConfig.PortBindings) {
if ({}.hasOwnProperty.call($scope.config.HostConfig.PortBindings, p)) {
- var hostPort = '';
+ var hostPort = '';
if ($scope.config.HostConfig.PortBindings[p][0].HostIp) {
hostPort = $scope.config.HostConfig.PortBindings[p][0].HostIp + ':';
}
@@ -387,7 +389,16 @@ function ($q, $scope, $state, $timeout, $transition$, $filter, Container, Contai
}
$scope.config.NetworkingConfig.EndpointsConfig[$scope.config.HostConfig.NetworkMode] = d.NetworkSettings.Networks[$scope.config.HostConfig.NetworkMode];
// Mac Address
- $scope.formValues.MacAddress = d.NetworkSettings.Networks[$scope.config.HostConfig.NetworkMode].MacAddress;
+ if(Object.keys(d.NetworkSettings.Networks).length) {
+ var firstNetwork = d.NetworkSettings.Networks[Object.keys(d.NetworkSettings.Networks)[0]];
+ $scope.formValues.MacAddress = firstNetwork.MacAddress;
+ $scope.config.NetworkingConfig.EndpointsConfig[$scope.config.HostConfig.NetworkMode] = firstNetwork;
+ $scope.extraNetworks = angular.copy(d.NetworkSettings.Networks);
+ delete $scope.extraNetworks[Object.keys(d.NetworkSettings.Networks)[0]];
+ } else {
+ $scope.formValues.MacAddress = '';
+ }
+
// ExtraHosts
if ($scope.config.HostConfig.ExtraHosts) {
var extraHosts = $scope.config.HostConfig.ExtraHosts;
@@ -604,14 +615,24 @@ function ($q, $scope, $state, $timeout, $transition$, $filter, Container, Contai
};
function createContainer(config, accessControlData) {
+ var containerIdentifier;
$q.when(!$scope.formValues.alwaysPull || ImageService.pullImage($scope.config.Image, $scope.formValues.Registry, true))
.finally(function final() {
ContainerService.createAndStartContainer(config)
.then(function success(data) {
- var containerIdentifier = data.Id;
+ containerIdentifier = data.Id;
var userId = Authentication.getUserDetails().ID;
return ResourceControlService.applyResourceControl('container', containerIdentifier, userId, accessControlData, []);
})
+ .then(function success() {
+ if($scope.extraNetworks) {
+ return $q.all(
+ Object.keys($scope.extraNetworks).map(function(networkName) {
+ return NetworkService.connectContainer(networkName, containerIdentifier);
+ })
+ );
+ }
+ })
.then(function success() {
Notifications.success('Container successfully created');
$state.go('docker.containers', {}, {reload: true});
diff --git a/app/docker/views/containers/create/createcontainer.html b/app/docker/views/containers/create/createcontainer.html
index fefcfa7b7..9ef898d8a 100644
--- a/app/docker/views/containers/create/createcontainer.html
+++ b/app/docker/views/containers/create/createcontainer.html
@@ -126,11 +126,6 @@
Deploy the container
Deployment in progress...
- {{ state.formValidationError }}
-
-
- This container is connected to multiple networks, only one network will be kept at creation time.
-