mirror of https://github.com/OpenVidu/openvidu.git
openvidu-server: DockerManager allows to manually configure port binding
parent
eced1f618c
commit
bf76ff2bb5
|
@ -169,7 +169,8 @@ public class ComposedRecordingService extends RecordingService {
|
||||||
List<Bind> binds = new ArrayList<>();
|
List<Bind> binds = new ArrayList<>();
|
||||||
binds.add(bind1);
|
binds.add(bind1);
|
||||||
binds.add(bind2);
|
binds.add(bind2);
|
||||||
containerId = dockerManager.runContainer(container, containerName, volumes, binds, null, "host", envs);
|
containerId = dockerManager.runContainer(container, containerName, volumes, binds, null, null, "host",
|
||||||
|
envs);
|
||||||
containers.put(containerId, containerName);
|
containers.put(containerId, containerName);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
this.cleanRecordingMaps(recording);
|
this.cleanRecordingMaps(recording);
|
||||||
|
|
|
@ -122,7 +122,7 @@ public class DockerManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String runContainer(String container, String containerName, List<Volume> volumes, List<Bind> binds,
|
public String runContainer(String container, String containerName, List<Volume> volumes, List<Bind> binds,
|
||||||
List<Integer> exposedPorts, String networkMode, List<String> envs) throws Exception {
|
List<Integer> exposedPorts, Ports portBindings, String networkMode, List<String> envs) throws Exception {
|
||||||
|
|
||||||
CreateContainerCmd cmd = dockerClient.createContainerCmd(container).withName(containerName).withEnv(envs);
|
CreateContainerCmd cmd = dockerClient.createContainerCmd(container).withName(containerName).withEnv(envs);
|
||||||
HostConfig hostConfig = new HostConfig().withNetworkMode(networkMode);
|
HostConfig hostConfig = new HostConfig().withNetworkMode(networkMode);
|
||||||
|
@ -133,14 +133,14 @@ public class DockerManager {
|
||||||
hostConfig.withBinds(binds);
|
hostConfig.withBinds(binds);
|
||||||
}
|
}
|
||||||
if (exposedPorts != null) {
|
if (exposedPorts != null) {
|
||||||
Ports ps = new Ports();
|
Ports symmetricPortBindings = new Ports();
|
||||||
List<ExposedPort> expPorts = new ArrayList<>();
|
List<ExposedPort> expPorts = new ArrayList<>();
|
||||||
exposedPorts.forEach(p -> {
|
exposedPorts.forEach(p -> {
|
||||||
ExposedPort port = ExposedPort.tcp(p);
|
ExposedPort port = ExposedPort.tcp(p);
|
||||||
expPorts.add(port);
|
expPorts.add(port);
|
||||||
ps.bind(port, Binding.bindPort(p));
|
symmetricPortBindings.bind(port, Binding.bindPort(p));
|
||||||
});
|
});
|
||||||
hostConfig.withPortBindings(ps);
|
hostConfig.withPortBindings((portBindings == null) ? symmetricPortBindings : portBindings);
|
||||||
cmd.withExposedPorts(expPorts);
|
cmd.withExposedPorts(expPorts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -213,7 +213,17 @@ public class DockerManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static public String getDokerGatewayIp() {
|
public String getContainerIp(String containerId) {
|
||||||
|
try {
|
||||||
|
return CommandExecutor.execCommand("/bin/sh", "-c",
|
||||||
|
"docker inspect -f \"{{ .NetworkSettings.IPAddress }}\" " + containerId);
|
||||||
|
} catch (IOException | InterruptedException e) {
|
||||||
|
log.error(e.getMessage());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static public String getDockerGatewayIp() {
|
||||||
try {
|
try {
|
||||||
return CommandExecutor.execCommand("/bin/sh", "-c",
|
return CommandExecutor.execCommand("/bin/sh", "-c",
|
||||||
"docker network inspect bridge --format='{{(index .IPAM.Config 0).Gateway}}'");
|
"docker network inspect bridge --format='{{(index .IPAM.Config 0).Gateway}}'");
|
||||||
|
|
Loading…
Reference in New Issue