Streamlined the entrypoint script.

This commit is contained in:
Ameer Hamza Khan
2025-12-25 20:24:42 +08:00
parent 6122e061a7
commit 17289aeac4
5 changed files with 97 additions and 56 deletions

View File

@@ -0,0 +1,47 @@
#!/usr/bin/env bash
# Configure Chinese mirrors (Aliyun) for apt, pip, and npm
# Can be called independently or during container initialization
set -e
echo "Configuring Chinese mirrors (Aliyun) for apt, pip, and npm..."
# Replace Ubuntu sources with Aliyun mirror
if [[ -f /etc/apt/sources.list.d/ubuntu.sources ]]; then
sudo sed -i 's|http://archive.ubuntu.com/ubuntu/|https://mirrors.aliyun.com/ubuntu/|g' /etc/apt/sources.list.d/ubuntu.sources
sudo sed -i 's|http://security.ubuntu.com/ubuntu/|https://mirrors.aliyun.com/ubuntu/|g' /etc/apt/sources.list.d/ubuntu.sources
echo "Updated Ubuntu apt sources to use Aliyun mirrors"
fi
# Configure npm registry to use Chinese mirror (npmmirror.com is the recommended mirror)
if command -v npm &> /dev/null; then
npm config set registry https://registry.npmmirror.com/
echo "Configured npm registry to use Chinese mirror (registry.npmmirror.com)"
fi
# Also set system-wide npm config for all users
sudo mkdir -p /etc/npm
echo "registry=https://registry.npmmirror.com/" | sudo tee /etc/npm/npmrc > /dev/null
# Set for root user as well (for when npm is installed later)
sudo mkdir -p /root/.npm
echo "registry=https://registry.npmmirror.com/" | sudo tee /root/.npmrc > /dev/null
echo "Configured npm registry to use Chinese mirror (registry.npmmirror.com)"
# Configure pip to use Aliyun mirror
sudo mkdir -p /etc/pip
echo "[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = mirrors.aliyun.com" | sudo tee /etc/pip/pip.conf > /dev/null
echo "Configured pip to use Aliyun mirror"
# Update apt package cache after changing mirrors
echo "Updating apt package cache from new mirrors..."
if sudo apt update; then
echo "Apt package cache updated successfully from Aliyun mirrors"
else
echo "Warning: apt update failed, but mirrors are configured"
fi
echo "Chinese mirrors (Aliyun) configuration completed"

View File

@@ -0,0 +1,16 @@
#!/usr/bin/env bash
# Setup home directory for the current user
# Useful for attaching vscode with container
set -e
user_name=$(whoami)
user_home="/home/$user_name"
echo "Setting up home directory for user: $user_name"
sudo mkdir -p "$user_home"
sudo chown -R "$(id -u):$(id -g)" "$user_home"
cp -r /etc/skel/. "$user_home" 2>/dev/null || true
echo "Home directory setup completed: $user_home"

View File

@@ -0,0 +1,20 @@
#!/usr/bin/env bash
# Update apt package cache with network check
# Can be called independently or during container initialization
set -e
# Gracefully update package lists if network is available
echo "Checking network connectivity..."
if ping -c 1 -W 5 8.8.8.8 >/dev/null 2>&1 || ping -c 1 -W 5 1.1.1.1 >/dev/null 2>&1; then
echo "Network detected, refreshing package lists..."
if sudo apt update; then
echo "Package lists updated successfully"
else
echo "Warning: apt update failed despite network connectivity"
echo "Falling back to cached package lists"
fi
else
echo "No network connectivity detected, using cached package lists"
fi