louislam / dockge

A fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager
https://dockge.kuma.pet
MIT License
13.13k stars 375 forks source link

$HOME should not be overridden by dockge #581

Open FoxxMD opened 3 months ago

FoxxMD commented 3 months ago

⚠️ Please verify that this bug has NOT been reported before.

🛡️ Security Policy

Description

ENVs inside the dockge container seem to be overwriting ENVs not explicitly specified in .env for a stack. Dockge should only be using ENVs from the host OS + whatever is specified in .env file or in the compose file itself.

Note that this could sort of be fixed by global environmental variables (PR 387) but ideally it shouldn't be required to fix this issue.

👟 Reproduction steps

Assuming your user on the host is foo the $HOME env should be /home/foo.

👀 Expected behavior

On the host we observe that /home/foo/myData is created

😓 Actual Behavior

On the host we observe that /home/node/myData is created instead.

node is the user for the dockge container and in the container $HOME is exported as HOME=/home/node (check my exec'ing in and running printenv -0.

Dockge Version

1.4.2

💻 Operating System and Arch

EndevourOS (Arch) Kernel 6.10.0-arch1-2

🌐 Browser

Firefox 128.0.2

🐋 Docker Version

Docker 27.0.3

🟩 NodeJS Version

No response

📝 Relevant log output

ENV output from dockge container:

node@df3e7eadf8ce:/app$ echo $HOME
/home/node
node@df3e7eadf8ce:/app$ printenv -0
HOSTNAME=df3e7eadf8ceYARN_VERSION=1.22.19PWD=/appPNPM_HOME=/pnpmHOME=/home/nodeLS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.swp=00;90:*.tmp=00;90:*.dpkg-dist=00;90:*.dpkg-old=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:TERM=xtermSHLVL=1DOCKGE_STACKS_DIR=/home/foxx/stacksPATH=/pnpm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binNODE_VERSION=18.17.1_=/usr/bin/printenvnode@df3e7eadf8ce:/app
DomiiBunn commented 1 month ago

As dockge is running in a container it's $HOME is different from your hosts $HOME not sure how this could be avoided other than you setting the env var of $HOME for dockge to your users home path.

But this is not something I would recommend