From dae2430523655b4d56ec1911076551fa35e6df2c Mon Sep 17 00:00:00 2001 From: Kan Li Date: Thu, 29 Oct 2020 18:26:32 -0700 Subject: [PATCH] cmd/create, doc/toolbox-create, sh: Add flag --hostname to create command. When SSH to a host, ~/.Xauthority will be used for xauth; the entries in it contains the hostname. If within the toolbox container it uses another hostname, the xauth will fail. Therefore we need to be able to specify the hostname when creating the container. https://github.com/containers/toolbox/pull/573 --- doc/toolbox-create.1.md | 5 +++++ src/cmd/create.go | 8 +++++++- toolbox | 8 +++++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/doc/toolbox-create.1.md b/doc/toolbox-create.1.md index ef53802a6..7980a2cfb 100644 --- a/doc/toolbox-create.1.md +++ b/doc/toolbox-create.1.md @@ -6,6 +6,7 @@ toolbox\-create - Create a new toolbox container ## SYNOPSIS **toolbox create** [*--candidate-registry*] [*--container NAME* | *-c NAME*] + [*--hostname HOSTNAME*] [*--image NAME* | *-i NAME*] [*--release RELEASE* | *-r RELEASE*] @@ -41,6 +42,10 @@ Assign a different NAME to the toolbox container. This is useful for creating multiple toolbox containers from the same base image, or for entirely customized containers from custom-built base images. +**--hostname** HOSTNAME + +Create the toolbox container using the specified hostname (default: toolbox). + **--image** NAME, **-i** NAME Change the NAME of the base image used to create the toolbox container. This diff --git a/src/cmd/create.go b/src/cmd/create.go index 4f5573352..2d5475332 100644 --- a/src/cmd/create.go +++ b/src/cmd/create.go @@ -43,6 +43,7 @@ const ( var ( createFlags struct { container string + hostname string image string release string } @@ -71,6 +72,11 @@ func init() { "", "Assign a different name to the toolbox container.") + flags.StringVar(&createFlags.hostname, + "hostname", + "toolbox", + "Create the toolbox container using the specified hostname (default: toolbox).") + flags.StringVarP(&createFlags.image, "image", "i", @@ -363,7 +369,7 @@ func createContainer(container, image, release string, showCommandToEnter bool) createArgs = append(createArgs, xdgRuntimeDirEnv...) createArgs = append(createArgs, []string{ - "--hostname", "toolbox", + "--hostname", createFlags.hostname, "--ipc", "host", "--label", "com.github.containers.toolbox=true", "--label", "com.github.debarshiray.toolbox=true", diff --git a/toolbox b/toolbox index 8a8c16727..992f21f8c 100755 --- a/toolbox +++ b/toolbox @@ -69,6 +69,7 @@ toolbox_container_default="" toolbox_container_old_v1="" toolbox_container_old_v2="" toolbox_container_prefix_default="" +toolbox_hostname=toolbox toolbox_image="" toolbox_runtime_directory="$XDG_RUNTIME_DIR"/toolbox user_id_real=$(id -ru 2>&3) @@ -1074,7 +1075,7 @@ create() $podman_command create \ --dns none \ --env TOOLBOX_PATH="$TOOLBOX_PATH" \ - --hostname toolbox \ + --hostname "${toolbox_hostname}" \ --ipc host \ --label "com.github.containers.toolbox=true" \ --label "com.github.debarshiray.toolbox=true" \ @@ -2398,6 +2399,11 @@ case $op in help "$op" exit ;; + --hostname ) + shift + exit_if_missing_argument --hostname "$1" + toolbox_hostname=$1 + ;; -i | --image ) shift exit_if_missing_argument --image "$1"