mirror of
				https://github.com/containers/podman.git
				synced 2025-11-01 02:42:11 +08:00 
			
		
		
		
	 d28e85741f
			
		
	
	d28e85741f
	
	
	
		
			
			InfraContainer should go through the same creation process as regular containers. This change was from the cmd level down, involving new container CLI opts and specgen creating functions. What now happens is that both container and pod cli options are populated in cmd and used to create a podSpecgen and a containerSpecgen. The process then goes as follows FillOutSpecGen (infra) -> MapSpec (podOpts -> infraOpts) -> PodCreate -> MakePod -> createPodOptions -> NewPod -> CompleteSpec (infra) -> MakeContainer -> NewContainer -> newContainer -> AddInfra (to pod state) Signed-off-by: cdoern <cdoern@redhat.com>
		
			
				
	
	
		
			23 lines
		
	
	
		
			689 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			689 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package specgenutil
 | |
| 
 | |
| import (
 | |
| 	"github.com/docker/go-connections/nat"
 | |
| 	"github.com/pkg/errors"
 | |
| )
 | |
| 
 | |
| func verifyExpose(expose []string) error {
 | |
| 	// add the expose ports from the user (--expose)
 | |
| 	// can be single or a range
 | |
| 	for _, expose := range expose {
 | |
| 		// support two formats for expose, original format <portnum>/[<proto>] or <startport-endport>/[<proto>]
 | |
| 		_, port := nat.SplitProtoPort(expose)
 | |
| 		// parse the start and end port and create a sequence of ports to expose
 | |
| 		// if expose a port, the start and end port are the same
 | |
| 		_, _, err := nat.ParsePortRange(port)
 | |
| 		if err != nil {
 | |
| 			return errors.Wrapf(err, "invalid range format for --expose: %s", expose)
 | |
| 		}
 | |
| 	}
 | |
| 	return nil
 | |
| }
 |