feat(dev):add init env script

This commit is contained in:
geebytes 2025-03-17 15:24:37 +00:00
parent 69b71a8cac
commit 599ebff278
3 changed files with 56 additions and 24 deletions

View File

@ -10,7 +10,7 @@
"--no-cache"
]
},
"initializeCommand": ".devcontainer/get_env.sh",
"initializeCommand": ".devcontainer/init_env.sh",
"name": "dbgpt",
"workspaceFolder": "/app",
"workspaceMount": "source=${localWorkspaceFolder},target=/app,type=bind",
@ -41,7 +41,7 @@
"source=${localEnv:SSH_AUTH_SOCK},target=/run/host-services/ssh-auth.sock,type=bind",
// mount to local models
// Persist the model to avoid redundant downloads.
"source=${localWorkspaceFolder}/models/text2vec-large-chinese,target=/app/models/text2vec-large-chinese,type=bind"
"source=${localWorkspaceFolder}/models,target=/app/models,type=bind"
],
"containerEnv": {
"SSH_AUTH_SOCK": "/run/host-services/ssh-auth.sock"

View File

@ -1,22 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
OS=$(uname -s)
USERNAME="$USER"
USER_UID=$(id -u "$USER")
if [ "$OS" = "Linux" ]; then
GROUPNAME=$(id -gn "$USER")
USER_GID=$(id -g "$USER")
else
GROUPNAME="root"
USER_GID="0"
fi
printf "OS=%s\nUSERNAME=%s\nUSER_UID=%s\nGROUPNAME=%s\nUSER_GID=%s\n" \
"$OS" \
"$USERNAME" \
"$USER_UID" \
"$GROUPNAME" \
"$USER_GID" > .devcontainer/.env

54
.devcontainer/init_env.sh Executable file
View File

@ -0,0 +1,54 @@
#!/usr/bin/env bash
OS=$(uname -s)
USERNAME="$USER"
USER_UID=$(id -u "$USER")
if [ "$OS" = "Linux" ]; then
GROUPNAME=$(id -gn "$USER")
USER_GID=$(id -g "$USER")
else
GROUPNAME="root"
USER_GID="0"
fi
printf "OS=%s\nUSERNAME=%s\nUSER_UID=%s\nGROUPNAME=%s\nUSER_GID=%s\n" \
"$OS" \
"$USERNAME" \
"$USER_UID" \
"$GROUPNAME" \
"$USER_GID" > .devcontainer/.env
# sharing-git-credentials see https://code.visualstudio.com/remote/advancedcontainers/sharing-git-credentials
init_ssh_agent(){
# Define code block to insert (with unique identifier comment)
SSH_AGENT_CODE='# SSH Agent Auto Management[ID:ssh_agent_v1]
if [ -z "$SSH_AUTH_SOCK" ]; then
RUNNING_AGENT="$(ps -ax | grep '\''ssh-agent -s'\'' | grep -v grep | wc -l | tr -d '\''[:space:]'\'')"
if [ "$RUNNING_AGENT" = "0" ]; then
ssh-agent -s &> $HOME/.ssh/ssh-agent
fi
eval $(cat $HOME/.ssh/ssh-agent) > /dev/null
ssh-add 2> /dev/null
fi
# END_SSH_AGENT_CODE'
# Auto detect shell type
TARGET_FILE="$HOME/.bashrc"
if [[ "$SHELL" == *"zsh"* ]]; then
TARGET_FILE="$HOME/.zshrc"
fi
# Create .ssh directory if not exists
mkdir -p "$HOME/.ssh"
# Check for existing code block
if ! grep -q 'END_SSH_AGENT_CODE' "$TARGET_FILE"; then
echo "Adding SSH agent management code to ${TARGET_FILE}..."
echo "$SSH_AGENT_CODE" >> "$TARGET_FILE"
echo "Code added successfully. Please run source ${TARGET_FILE} to apply changes immediately"
else
echo "Existing SSH agent code detected, no need to add again"
fi
}
init_ssh_agent
mkdir -p models