mirror of
https://github.com/psviderski/uncloud.git
synced 2026-10-06 13:18:58 +00:00
feat: allow to bind to multiple host IP addresses specified as CIDR prefix in x-ports (#358)
Signed-off-by: Miek Gieben <miek@miek.nl> Co-authored-by: Pasha Sviderski <me@psviderski.name>
This commit is contained in:
1 parent
3586a32987
commit
1247f961c2
11 files changed
+312
-76
No files matched your search
@@ -620,7 +620,24 @@ func (s *Server) CreateServiceContainer(
|
||||
if p.HostIP.IsValid() {
|
||||
portBindings[port][0].HostIP = p.HostIP.String()
|
||||
}
|
||||
|
||||
if p.HostPrefix.IsValid() {
|
||||
addrs, err := addrOfPrefix(p.HostPrefix)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// p.HostIP was not valid, so the first IP can be set in the above added PortBindings, the rest is
|
||||
// just appended.
|
||||
portBindings[port][0].HostIP = addrs[0]
|
||||
for _, addr := range addrs[1:] {
|
||||
portBindings[port] = append(portBindings[port], nat.PortBinding{
|
||||
HostPort: strconv.Itoa(int(p.PublishedPort)),
|
||||
HostIP: addr,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
hostConfig := &container.HostConfig{
|
||||
CapAdd: spec.Container.CapAdd,
|
||||
CapDrop: spec.Container.CapDrop,
|
||||
|
||||
Reference in new issue
Block a user