This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit ccaa3bc324635aa50a82f238c89f37141a350931
Author: Doru Bercea <gheorghe-teod.ber...@ibm.com>
AuthorDate: Tue Jan 5 18:37:51 2021 -0500

    Add network name flag.
---
 pkg/cmd/local_run.go             | 4 ++++
 pkg/cmd/util_containerization.go | 6 ++++++
 pkg/util/docker/docker.go        | 2 +-
 pkg/util/docker/docker_base.go   | 8 +++++---
 4 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/pkg/cmd/local_run.go b/pkg/cmd/local_run.go
index 94f6383..5ff9917 100644
--- a/pkg/cmd/local_run.go
+++ b/pkg/cmd/local_run.go
@@ -57,6 +57,7 @@ func newCmdLocalRun(rootCmdOptions *RootCmdOptions) 
(*cobra.Command, *localRunCm
 
        cmd.Flags().Bool("containerize", false, "Run integration in a local 
container.")
        cmd.Flags().String("image", "", "Full path to integration image 
including registry.")
+       cmd.Flags().String("network", "", "Custom network name to be used by 
the underlying Docker command.")
        cmd.Flags().StringArray("property-file", nil, "Add a property file to 
the integration.")
        cmd.Flags().StringArrayP("property", "p", nil, "Add a Camel property to 
the integration.")
        cmd.Flags().StringArrayP("dependency", "d", nil, 
additionalDependencyUsageMessage)
@@ -69,6 +70,7 @@ type localRunCmdOptions struct {
        *RootCmdOptions
        Containerize           bool     `mapstructure:"containerize"`
        Image                  string   `mapstructure:"image"`
+       Network                string   `mapstructure:"network"`
        PropertyFiles          []string `mapstructure:"property-files"`
        Properties             []string `mapstructure:"properties"`
        AdditionalDependencies []string `mapstructure:"dependencies"`
@@ -115,6 +117,8 @@ func (command *localRunCmdOptions) init() error {
                if err != nil {
                        return err
                }
+
+               setDockerNetworkName(command.Network)
        }
 
        return createMavenWorkingDirectory()
diff --git a/pkg/cmd/util_containerization.go b/pkg/cmd/util_containerization.go
index 1f6a8c3..76a6fca 100644
--- a/pkg/cmd/util_containerization.go
+++ b/pkg/cmd/util_containerization.go
@@ -74,6 +74,12 @@ func deleteDockerWorkingDirectory() error {
        return nil
 }
 
+func setDockerNetworkName(networkName string) {
+       if networkName != "" {
+               docker.NetworkName = networkName
+       }
+}
+
 func createAndBuildBaseImage(ctx context.Context, containerRegistry string) 
error {
        // Create the base image Docker file.
        err := docker.CreateBaseImageDockerFile()
diff --git a/pkg/util/docker/docker.go b/pkg/util/docker/docker.go
index 90ce1f3..5d4777c 100644
--- a/pkg/util/docker/docker.go
+++ b/pkg/util/docker/docker.go
@@ -104,7 +104,7 @@ func BuildIntegrationImageArgs(imagePath string) []string {
 func RunIntegrationImageArgs(imagePath string) []string {
        // Construct the docker command:
        //
-       // docker run --network="host" <dockerRegistry>/<ImageName>
+       // docker run --network=<network-name> <dockerRegistry>/<ImageName>
        //
        return RunImageArgs(imagePath, latestTag)
 }
diff --git a/pkg/util/docker/docker_base.go b/pkg/util/docker/docker_base.go
index 366ad77..4967770 100644
--- a/pkg/util/docker/docker_base.go
+++ b/pkg/util/docker/docker_base.go
@@ -34,6 +34,9 @@ var BaseWorkingDirectory string = ""
 // IntegrationWorkingDirectory -- directory used by Docker to construct the 
integration image.
 var IntegrationWorkingDirectory string = ""
 
+// NetworkName -- network used by Docker when running the image.
+var NetworkName string = "host"
+
 // Internal variables.
 var (
        dockerEndpointSeparator = "/"
@@ -68,14 +71,13 @@ func BuildImageArgs(dockerFileDir string, imageName string, 
sourceDir string) []
 func RunImageArgs(imagePath string, imageTag string) []string {
        // Construct the docker command:
        //
-       // docker run --network="host" <image-name>:<tag>
+       // docker run --network=<network-name> <image-name>:<tag>
        //
-       // TODO: support other types of network connections.
        args := make([]string, 0)
        args = append(args, "run")
 
        // TODO: support other networks.
-       args = append(args, "--network=host")
+       args = append(args, "--network="+NetworkName)
 
        // Path to Docker image:
        args = append(args, FullImageArg(imagePath)...)

Reply via email to