mirror of
https://github.com/aleleba/aleleba-vscode-dockerfile-configuration.git
synced 2026-09-08 11:50:01 -06:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
11ae12a0b7
|
||
|
|
156d32ea9d
|
||
|
|
ac0914a08b
|
@@ -2,11 +2,8 @@
|
||||
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
||||
# for examples
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
case $- in
|
||||
*i*) ;;
|
||||
*) return;;
|
||||
esac
|
||||
# If not running interactively, don't do anything below
|
||||
if [[ $- == *i* ]]; then
|
||||
|
||||
# don't put duplicate lines or lines starting with space in the history.
|
||||
# See bash(1) for more options
|
||||
@@ -115,4 +112,6 @@ if ! shopt -oq posix; then
|
||||
. /etc/bash_completion
|
||||
fi
|
||||
fi
|
||||
|
||||
fi
|
||||
export LS_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=30;41: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:*.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:*.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:"
|
||||
+22
-12
@@ -9,6 +9,10 @@ fi
|
||||
# permitir override explícito vía HOST_UID/HOST_GID, y por defecto usar 1000.
|
||||
DETECTED_UID=$(stat -c '%u' "/home/${HOME_USER}" 2>/dev/null || echo 1000)
|
||||
DETECTED_GID=$(stat -c '%g' "/home/${HOME_USER}" 2>/dev/null || echo 1000)
|
||||
# Descartar UID/GID 0 (root) detectados del mount: es metadata espuria
|
||||
# de bind mounts (p.ej. WSL2/Docker Desktop), no un UID/GID real de host.
|
||||
[ "$DETECTED_UID" = "0" ] && DETECTED_UID=1000
|
||||
[ "$DETECTED_GID" = "0" ] && DETECTED_GID=1000
|
||||
TARGET_UID="${HOST_UID:-$DETECTED_UID}"
|
||||
TARGET_GID="${HOST_GID:-$DETECTED_GID}"
|
||||
|
||||
@@ -86,20 +90,26 @@ if ! id -u "$HOME_USER" > /dev/null 2>&1; then
|
||||
# Changing the property of the directory /home/${HOME_USER}/.vscode
|
||||
sudo chown -R ${HOME_USER} /home/${HOME_USER}/.vscode
|
||||
else
|
||||
# Usuario ya existe (imagen/volumen reusado) — resincronizar UID/GID si cambiaron
|
||||
CURRENT_UID=$(id -u "${HOME_USER}")
|
||||
CURRENT_GID=$(id -g "${HOME_USER}")
|
||||
CURRENT_GROUP=$(id -gn "${HOME_USER}")
|
||||
# Usuario ya existe (imagen/volumen reusado) — resincronizar UID/GID
|
||||
# SOLO si el operador lo pidió explícitamente vía HOST_UID/HOST_GID.
|
||||
# No usar la detección automática del mount acá: en reinicios repetidos
|
||||
# es una señal poco confiable (ver metadata GID 0 de bind mounts en
|
||||
# WSL2/Docker Desktop) y causaba un groupmod fallido en cada arranque.
|
||||
if [[ -n "${HOST_UID-}" || -n "${HOST_GID-}" ]]; then
|
||||
CURRENT_UID=$(id -u "${HOME_USER}")
|
||||
CURRENT_GID=$(id -g "${HOME_USER}")
|
||||
CURRENT_GROUP=$(id -gn "${HOME_USER}")
|
||||
|
||||
if [ "$CURRENT_UID" != "$TARGET_UID" ] || [ "$CURRENT_GID" != "$TARGET_GID" ]; then
|
||||
if [ "$CURRENT_GID" != "$TARGET_GID" ]; then
|
||||
sudo groupmod -g "${TARGET_GID}" "${CURRENT_GROUP}"
|
||||
if [ "$CURRENT_UID" != "$TARGET_UID" ] || [ "$CURRENT_GID" != "$TARGET_GID" ]; then
|
||||
if [ "$CURRENT_GID" != "$TARGET_GID" ]; then
|
||||
sudo groupmod -g "${TARGET_GID}" "${CURRENT_GROUP}"
|
||||
fi
|
||||
if [ "$CURRENT_UID" != "$TARGET_UID" ]; then
|
||||
sudo usermod -u "${TARGET_UID}" "${HOME_USER}"
|
||||
fi
|
||||
sudo find / -xdev \( -user "${CURRENT_UID}" -o -group "${CURRENT_GID}" \) \
|
||||
-exec chown -h "${TARGET_UID}:${TARGET_GID}" {} + 2>/dev/null || true
|
||||
fi
|
||||
if [ "$CURRENT_UID" != "$TARGET_UID" ]; then
|
||||
sudo usermod -u "${TARGET_UID}" "${HOME_USER}"
|
||||
fi
|
||||
sudo find / -xdev \( -user "${CURRENT_UID}" -o -group "${CURRENT_GID}" \) \
|
||||
-exec chown -h "${TARGET_UID}:${TARGET_GID}" {} + 2>/dev/null || true
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ The following environment variables can be set when running the Docker container
|
||||
|
||||
- `HOME_USER`: The username of the user running the container. This is used to set the correct permissions on files created in the container.
|
||||
- `VSCODE_TUNNEL_NAME`: The name of the SSH tunnel used by Visual Studio Code to connect to the container.
|
||||
- `HOST_UID` / `HOST_GID` (optional): Force the `HOME_USER` account to use a specific UID/GID instead of the default `1000`. If not set, the container will try to auto-detect the UID/GID from an existing `/home/${HOME_USER}` mount (useful when bind-mounting a host directory owned by a non-1000 user); if that can't be detected either, it falls back to `1000`. If the container is restarted/reused and the UID/GID changed, the existing user is resynced (`usermod`/`groupmod`) and its files re-owned accordingly.
|
||||
- `HOST_UID` / `HOST_GID` (optional): Force the `HOME_USER` account to use a specific UID/GID instead of the default `1000`. This only applies the first time the user is created: if not set, the container will try to auto-detect the UID/GID from an existing `/home/${HOME_USER}` mount (useful when bind-mounting a host directory owned by a non-1000 user); if that can't be detected either (or the mount reports UID/GID `0`, which some bind mount setups do), it falls back to `1000`. If the container is restarted/reused and the user already exists, its UID/GID is only resynced (`usermod`/`groupmod`, with files re-owned accordingly) when `HOST_UID`/`HOST_GID` are explicitly set — auto-detection from the mount is not used to resync an existing user, since mount metadata can be unreliable across restarts.
|
||||
|
||||
### Custom Environment Variables
|
||||
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
3.2.25
|
||||
3.2.28
|
||||
|
||||
Reference in New Issue
Block a user