mirror of
https://github.com/GNS3/gns3-server.git
synced 2024-12-19 12:57:56 +00:00
Support for docker images that set the USER directive. Changes the
docker user to root for the init script to configure the network, then drops to the configured user (or root if one is not defined) for continuing booting the image.
This commit is contained in:
parent
dde01317e0
commit
7c3a38d379
@ -311,6 +311,7 @@ class DockerVM(BaseNode):
|
|||||||
"Tty": True,
|
"Tty": True,
|
||||||
"OpenStdin": True,
|
"OpenStdin": True,
|
||||||
"StdinOnce": False,
|
"StdinOnce": False,
|
||||||
|
"User": "root",
|
||||||
"HostConfig": {
|
"HostConfig": {
|
||||||
"CapAdd": ["ALL"],
|
"CapAdd": ["ALL"],
|
||||||
"Privileged": True,
|
"Privileged": True,
|
||||||
@ -342,6 +343,9 @@ class DockerVM(BaseNode):
|
|||||||
# Give the information to the container the list of volume path mounted
|
# Give the information to the container the list of volume path mounted
|
||||||
params["Env"].append("GNS3_VOLUMES={}".format(":".join(self._volumes)))
|
params["Env"].append("GNS3_VOLUMES={}".format(":".join(self._volumes)))
|
||||||
|
|
||||||
|
# Pass user configured for image to init script
|
||||||
|
params["Env"].append("GNS3_USER={}".format(image_infos.get("Config", {"User": ""})["User"]))
|
||||||
|
|
||||||
variables = self.project.variables
|
variables = self.project.variables
|
||||||
if not variables:
|
if not variables:
|
||||||
variables = []
|
variables = []
|
||||||
|
@ -87,6 +87,9 @@ done
|
|||||||
ifup -a -f
|
ifup -a -f
|
||||||
|
|
||||||
# continue normal docker startup
|
# continue normal docker startup
|
||||||
PATH="$OLD_PATH"
|
GNS3_CMD="PATH=$OLD_PATH exec"
|
||||||
exec "$@"
|
while test "$#" -gt 0 ; do
|
||||||
|
GNS3_CMD="${GNS3_CMD} \"${1//\"/\\\"}\""
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
exec su ${GNS3_USER-root} -p -c "$GNS3_CMD"
|
||||||
|
Loading…
Reference in New Issue
Block a user