Add Expose{Tcp,Udp} to container def

This commit is contained in:
Joel Elkins 2022-07-31 13:37:05 -05:00
parent e56d2c12d2
commit 07492e04b1
No known key found for this signature in database
GPG Key ID: 133589DC38921AE2

View File

@ -52,6 +52,8 @@ type Container struct {
Restart string `toml:"restart,omitempty"`
Umask null.Int `toml:"umask,omitempty"`
User string `toml:"user,omitempty"`
ExposeTcp []uint16 `toml:"expose_tcp,omitempty"`
ExposeUdp []uint16 `toml:"expose_udp,omitempty"`
conn context.Context
cdata *define.InspectContainerData
@ -115,7 +117,7 @@ func (c *Container) pull() error {
}
func (c *Container) newCommandSet(op string, cmds cmd.Commands) cmd.CommandSet {
return cmd.CommandSet {
return cmd.CommandSet{
ID: fmt.Sprintf("%s-%s", op, c.Name),
Commands: cmds,
}
@ -158,6 +160,14 @@ func (c *Container) CreateCommands() cmd.CommandSet {
dns = append(dns, c.Networks[i].DNS...)
}
expose := map[uint16]string{}
for _, p := range c.ExposeTcp {
expose[p] = "tcp"
}
for _, p := range c.ExposeUdp {
expose[p] = "udp"
}
spec := specgen.SpecGenerator{
ContainerBasicConfig: specgen.ContainerBasicConfig{
Name: c.Name,
@ -176,6 +186,8 @@ func (c *Container) CreateCommands() cmd.CommandSet {
ContainerNetworkConfig: specgen.ContainerNetworkConfig{
Networks: nets,
DNSServers: dns,
Expose: expose,
PublishExposedPorts: len(expose) > 0,
},
ContainerSecurityConfig: specgen.ContainerSecurityConfig{
User: c.User,