diff --git a/app-backend/src/docker/DockerApi.js b/app-backend/src/docker/DockerApi.js index 5766605..5037948 100644 --- a/app-backend/src/docker/DockerApi.js +++ b/app-backend/src/docker/DockerApi.js @@ -543,16 +543,25 @@ class DockerApi { let ports = []; if (portsToMap) { for (let i = 0; i < portsToMap.length; i++) { - ports.push({ - Protocol: 'tcp', - TargetPort: portsToMap[i].containerPort, - PublishedPort: portsToMap[i].hostPort - }); - ports.push({ - Protocol: 'udp', - TargetPort: portsToMap[i].containerPort, - PublishedPort: portsToMap[i].hostPort - }); + if (portsToMap[i].protocol) { + ports.push({ + Protocol: portsToMap[i].protocol, + TargetPort: portsToMap[i].containerPort, + PublishedPort: portsToMap[i].hostPort + }); + } + else { + ports.push({ + Protocol: 'tcp', + TargetPort: portsToMap[i].containerPort, + PublishedPort: portsToMap[i].hostPort + }); + ports.push({ + Protocol: 'udp', + TargetPort: portsToMap[i].containerPort, + PublishedPort: portsToMap[i].hostPort + }); + } } } @@ -1057,16 +1066,25 @@ class DockerApi { updatedData.EndpointSpec.Ports = []; for (let i = 0; i < ports.length; i++) { let p = ports[i]; - updatedData.EndpointSpec.Ports.push({ - Protocol: 'tcp', - TargetPort: p.containerPort, - PublishedPort: p.hostPort - }); - updatedData.EndpointSpec.Ports.push({ - Protocol: 'udp', - TargetPort: p.containerPort, - PublishedPort: p.hostPort - }); + if (p.protocol) { + updatedData.EndpointSpec.Ports.push({ + Protocol: p.protocol, + TargetPort: p.containerPort, + PublishedPort: p.hostPort + }); + } + else { + updatedData.EndpointSpec.Ports.push({ + Protocol: 'tcp', + TargetPort: p.containerPort, + PublishedPort: p.hostPort + }); + updatedData.EndpointSpec.Ports.push({ + Protocol: 'udp', + TargetPort: p.containerPort, + PublishedPort: p.hostPort + }); + } } } diff --git a/app-backend/src/user/DockerRegistry.js b/app-backend/src/user/DockerRegistry.js index 84bb034..7c4e923 100644 --- a/app-backend/src/user/DockerRegistry.js +++ b/app-backend/src/user/DockerRegistry.js @@ -81,6 +81,7 @@ class DockerRegistry { function createRegistryServiceOnNode() { return dockerApi.createServiceOnNodeId(CaptainConstants.registryImageName, CaptainConstants.registryServiceName, [{ + protocol: 'tcp', containerPort: 5000, hostPort: CaptainConstants.registrySubDomainPort }], myNodeId, [ diff --git a/app-backend/src/user/LoadBalancerManager.js b/app-backend/src/user/LoadBalancerManager.js index cd5503a..5217324 100644 --- a/app-backend/src/user/LoadBalancerManager.js +++ b/app-backend/src/user/LoadBalancerManager.js @@ -307,9 +307,11 @@ class LoadBalancerManager { Logger.d('No Captain Nginx service is running. Creating one on captain node...'); return dockerApi.createServiceOnNodeId(CaptainConstants.nginxImageName, CaptainConstants.nginxServiceName, [{ + protocol: 'tcp', containerPort: 80, hostPort: CaptainConstants.nginxPortNumber }, { + protocol: 'tcp', containerPort: 443, hostPort: 443 }], nodeId, null, null, { diff --git a/app-backend/src/utils/CaptainInstaller.js b/app-backend/src/utils/CaptainInstaller.js index 766345a..abea879 100644 --- a/app-backend/src/utils/CaptainInstaller.js +++ b/app-backend/src/utils/CaptainInstaller.js @@ -113,6 +113,7 @@ module.exports.install = function () { } ports.push({ + protocol: 'tcp', containerPort: CaptainConstants.captainServiceExposedPort, hostPort: CaptainConstants.captainServiceExposedPort });