mirror of
https://git.openapi.site/https://github.com/desirecore/market.git
synced 2026-04-21 14:50:49 +08:00
feat: environment-setup v1.1.0 — 增加 Docker/Podman 容器环境 + WSL2 配置
- frontmatter: description 和触发词覆盖 Docker/Podman/WSL2/容器关键词 - 快速诊断: 增加 Docker/Podman/WSL2 检测命令 - 新增「容器运行环境」章节: Docker 各平台安装、Podman 替代方案、常见问题 - 新增「WSL2 安装与配置」章节: 检测/安装/发行版/开发环境配置/文件互访/常见问题 - 版本升级 1.0.0 → 1.1.0
This commit is contained in:
@@ -1,18 +1,21 @@
|
|||||||
---
|
---
|
||||||
name: 开发环境配置
|
name: 开发环境配置
|
||||||
description: >-
|
description: >-
|
||||||
Use this skill when the user needs help setting up a development environment,
|
Use this skill when the user needs help setting up a development environment.
|
||||||
installing Python, Node.js, or their package managers, managing multiple
|
Covers three pillars: (1) Python/Node.js runtime installation and multi-version
|
||||||
runtime versions, creating virtual environments, or troubleshooting
|
management (Hatch, Volta, pyenv, nvm); (2) Docker/Podman container runtime
|
||||||
environment-related issues. Triggers include: "install python", "install
|
detection, installation, and usage; (3) WSL2 setup on Windows for Linux
|
||||||
node", "setup environment", "virtual environment", "venv", "nvm", "pyenv",
|
compatibility. Triggers include: "install python", "install node", "install
|
||||||
|
docker", "setup environment", "virtual environment", "venv", "nvm", "pyenv",
|
||||||
"pip not found", "python not found", "node not found", "npm not found",
|
"pip not found", "python not found", "node not found", "npm not found",
|
||||||
"PATH issues", "version manager", or any error message indicating a missing
|
"docker not found", "container", "podman", "WSL", "WSL2", "PATH issues",
|
||||||
runtime or package manager. Also use when other skills (docx, pdf, xlsx,
|
"version manager", or any error message indicating a missing runtime, package
|
||||||
|
manager, or container engine. Also use when other skills (docx, pdf, xlsx,
|
||||||
pptx) report that Python or Node.js is not available and the user needs
|
pptx) report that Python or Node.js is not available and the user needs
|
||||||
guidance. Use when 用户提到 安装Python、安装Node、环境配置、虚拟环境、
|
guidance. Use when 用户提到 安装Python、安装Node、安装Docker、容器、Podman、
|
||||||
版本管理、PATH问题、pip找不到、python找不到。
|
WSL、WSL2、环境配置、虚拟环境、版本管理、PATH问题、pip找不到、python找不到、
|
||||||
version: 1.0.0
|
docker找不到、容器运行环境。
|
||||||
|
version: 1.1.0
|
||||||
type: procedural
|
type: procedural
|
||||||
risk_level: low
|
risk_level: low
|
||||||
status: enabled
|
status: enabled
|
||||||
@@ -21,6 +24,9 @@ tags:
|
|||||||
- environment
|
- environment
|
||||||
- python
|
- python
|
||||||
- nodejs
|
- nodejs
|
||||||
|
- docker
|
||||||
|
- container
|
||||||
|
- wsl
|
||||||
- setup
|
- setup
|
||||||
- troubleshooting
|
- troubleshooting
|
||||||
metadata:
|
metadata:
|
||||||
@@ -37,7 +43,7 @@ market:
|
|||||||
stroke="url(#env-a)" stroke-width="1.5" stroke-linecap="round"
|
stroke="url(#env-a)" stroke-width="1.5" stroke-linecap="round"
|
||||||
stroke-linejoin="round"/><path d="M13 16h4" stroke="url(#env-a)"
|
stroke-linejoin="round"/><path d="M13 16h4" stroke="url(#env-a)"
|
||||||
stroke-width="1.5" stroke-linecap="round"/></svg>
|
stroke-width="1.5" stroke-linecap="round"/></svg>
|
||||||
short_desc: Python / Node.js 环境安装、版本管理与问题排查
|
short_desc: Python / Node.js / Docker 环境安装、版本管理与问题排查
|
||||||
category: productivity
|
category: productivity
|
||||||
maintainer:
|
maintainer:
|
||||||
name: DesireCore Official
|
name: DesireCore Official
|
||||||
@@ -47,7 +53,11 @@ market:
|
|||||||
|
|
||||||
# Environment Setup Guide
|
# Environment Setup Guide
|
||||||
|
|
||||||
本技能提供 Python 和 Node.js 开发环境的完整安装、多版本管理、虚拟环境配置以及常见问题排查指南。
|
本技能提供开发环境的完整配置指南,涵盖三大支柱:
|
||||||
|
|
||||||
|
1. **运行时环境**:Python / Node.js 安装与多版本管理(Hatch、Volta、pyenv、nvm)
|
||||||
|
2. **容器环境**:Docker / Podman 检测、安装与使用
|
||||||
|
3. **Windows 子系统**:WSL2 安装与配置(仅 Windows)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -61,9 +71,18 @@ echo "=== Python ===" && python3 --version 2>/dev/null || python --version 2>/de
|
|||||||
echo "=== pip ===" && pip3 --version 2>/dev/null || pip --version 2>/dev/null || echo "NOT FOUND"
|
echo "=== pip ===" && pip3 --version 2>/dev/null || pip --version 2>/dev/null || echo "NOT FOUND"
|
||||||
echo "=== Node.js ===" && node --version 2>/dev/null || echo "NOT FOUND"
|
echo "=== Node.js ===" && node --version 2>/dev/null || echo "NOT FOUND"
|
||||||
echo "=== npm ===" && npm --version 2>/dev/null || echo "NOT FOUND"
|
echo "=== npm ===" && npm --version 2>/dev/null || echo "NOT FOUND"
|
||||||
|
echo "=== Docker ===" && docker --version 2>/dev/null || echo "NOT FOUND"
|
||||||
|
echo "=== Podman ===" && podman --version 2>/dev/null || echo "NOT FOUND"
|
||||||
echo "=== PATH ===" && echo "$PATH" | tr ':' '\n'
|
echo "=== PATH ===" && echo "$PATH" | tr ':' '\n'
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Windows 额外检测**(在 PowerShell 中运行):
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Write-Host "=== WSL ===" ; wsl --status 2>&1
|
||||||
|
Write-Host "=== Docker ===" ; docker --version 2>$null ; if (-not $?) { Write-Host "NOT FOUND" }
|
||||||
|
```
|
||||||
|
|
||||||
根据输出结果,跳转到对应章节。
|
根据输出结果,跳转到对应章节。
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -942,6 +961,279 @@ npm install -g docx pptxgenjs
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 容器运行环境(Docker / Podman)
|
||||||
|
|
||||||
|
容器环境在开发中越来越常见,许多工具和服务(数据库、消息队列、AI 推理服务等)通过容器部署最为便捷。
|
||||||
|
|
||||||
|
### 检测容器环境
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Docker
|
||||||
|
docker --version 2>/dev/null && docker info --format '{{.OperatingSystem}}' 2>/dev/null || echo "Docker NOT FOUND or not running"
|
||||||
|
|
||||||
|
# Podman(Docker 的无守护进程替代品)
|
||||||
|
podman --version 2>/dev/null || echo "Podman NOT FOUND"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Docker 安装
|
||||||
|
|
||||||
|
#### macOS
|
||||||
|
|
||||||
|
推荐使用 Docker Desktop(包含 Docker Engine + Docker Compose + GUI):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 方式 1:Homebrew Cask(推荐)
|
||||||
|
brew install --cask docker
|
||||||
|
|
||||||
|
# 安装后启动 Docker Desktop 应用
|
||||||
|
# 首次启动需要授权特权访问
|
||||||
|
|
||||||
|
# 方式 2:从官网下载
|
||||||
|
# https://www.docker.com/products/docker-desktop/
|
||||||
|
# 选择 Apple Silicon (M1/M2/M3) 或 Intel 版本
|
||||||
|
```
|
||||||
|
|
||||||
|
安装后验证:
|
||||||
|
```bash
|
||||||
|
docker --version
|
||||||
|
docker run hello-world
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Windows
|
||||||
|
|
||||||
|
**推荐 Docker Desktop + WSL2 后端**(需要先安装 WSL2,见下方 WSL2 章节):
|
||||||
|
|
||||||
|
1. 下载 [Docker Desktop for Windows](https://www.docker.com/products/docker-desktop/)
|
||||||
|
2. 安装时勾选 "Use WSL 2 instead of Hyper-V"
|
||||||
|
3. 安装后在 Settings → General 中确认 "Use the WSL 2 based engine" 已启用
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# 或通过 winget 安装
|
||||||
|
winget install Docker.DockerDesktop
|
||||||
|
```
|
||||||
|
|
||||||
|
验证:
|
||||||
|
```powershell
|
||||||
|
docker --version
|
||||||
|
docker run hello-world
|
||||||
|
```
|
||||||
|
|
||||||
|
**不需要 Docker Desktop 的轻量方案**(仅 CLI,通过 WSL2):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 在 WSL2 Ubuntu 中:
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install docker.io docker-compose-v2
|
||||||
|
sudo usermod -aG docker $USER
|
||||||
|
# 重新登录 WSL2 后生效
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Linux (Debian/Ubuntu)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 安装 Docker Engine(官方仓库)
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install ca-certificates curl
|
||||||
|
sudo install -m 0755 -d /etc/apt/keyrings
|
||||||
|
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
|
||||||
|
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
||||||
|
|
||||||
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||||
|
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
|
||||||
|
|
||||||
|
# 免 sudo 使用 Docker
|
||||||
|
sudo usermod -aG docker $USER
|
||||||
|
newgrp docker
|
||||||
|
|
||||||
|
# 验证
|
||||||
|
docker --version
|
||||||
|
docker run hello-world
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Linux (Fedora/RHEL)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf install dnf-plugins-core
|
||||||
|
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
|
||||||
|
sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin
|
||||||
|
sudo systemctl start docker
|
||||||
|
sudo systemctl enable docker
|
||||||
|
sudo usermod -aG docker $USER
|
||||||
|
```
|
||||||
|
|
||||||
|
### Podman(Docker 替代品,无守护进程)
|
||||||
|
|
||||||
|
Podman 兼容 Docker CLI 命令,但不需要后台守护进程,更轻量:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# macOS
|
||||||
|
brew install podman
|
||||||
|
podman machine init
|
||||||
|
podman machine start
|
||||||
|
|
||||||
|
# Ubuntu/Debian
|
||||||
|
sudo apt install podman
|
||||||
|
|
||||||
|
# Fedora(预装)
|
||||||
|
podman --version
|
||||||
|
|
||||||
|
# Windows
|
||||||
|
winget install RedHat.Podman
|
||||||
|
```
|
||||||
|
|
||||||
|
使用方式与 Docker 几乎一致(将 `docker` 替换为 `podman`):
|
||||||
|
```bash
|
||||||
|
podman run hello-world
|
||||||
|
podman ps
|
||||||
|
podman images
|
||||||
|
```
|
||||||
|
|
||||||
|
### Docker 常见问题
|
||||||
|
|
||||||
|
**"Cannot connect to the Docker daemon"**:
|
||||||
|
```bash
|
||||||
|
# Linux:启动 Docker 服务
|
||||||
|
sudo systemctl start docker
|
||||||
|
|
||||||
|
# macOS/Windows:确保 Docker Desktop 正在运行
|
||||||
|
|
||||||
|
# WSL2:可能需要重启 Docker Desktop
|
||||||
|
```
|
||||||
|
|
||||||
|
**"permission denied while trying to connect to the Docker daemon socket"**:
|
||||||
|
```bash
|
||||||
|
# 将当前用户加入 docker 组
|
||||||
|
sudo usermod -aG docker $USER
|
||||||
|
# 重新登录(或执行 newgrp docker)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Docker Desktop 占用资源过高**:
|
||||||
|
在 Docker Desktop Settings → Resources 中调整 CPU 和内存限制。WSL2 后端用户也可编辑 `~/.wslconfig`:
|
||||||
|
```ini
|
||||||
|
[wsl2]
|
||||||
|
memory=4GB
|
||||||
|
processors=2
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## WSL2 安装与配置(仅 Windows)
|
||||||
|
|
||||||
|
WSL2(Windows Subsystem for Linux 2)让 Windows 用户可以原生运行 Linux 环境,是运行 Python 脚本、Docker、以及各种开发工具的最佳方式。
|
||||||
|
|
||||||
|
### 检测 WSL2
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# 检查 WSL 是否已安装
|
||||||
|
wsl --status
|
||||||
|
|
||||||
|
# 查看已安装的 Linux 发行版
|
||||||
|
wsl --list --verbose
|
||||||
|
```
|
||||||
|
|
||||||
|
### 系统要求
|
||||||
|
|
||||||
|
- Windows 11(21H2 或更高)或 Windows 10(版本 2004,Build 19041 或更高)
|
||||||
|
- CPU 虚拟化已启用(BIOS 中的 Intel VT-x / AMD-V)
|
||||||
|
|
||||||
|
### 安装 WSL2
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# 以管理员权限运行 PowerShell
|
||||||
|
|
||||||
|
# 一键安装(包括 WSL2 内核 + Ubuntu 默认发行版)
|
||||||
|
wsl --install
|
||||||
|
|
||||||
|
# 安装完成后需要重启计算机
|
||||||
|
# 重启后 Ubuntu 窗口会自动打开,提示设置用户名和密码
|
||||||
|
```
|
||||||
|
|
||||||
|
### 安装指定发行版
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# 查看可用发行版
|
||||||
|
wsl --list --online
|
||||||
|
|
||||||
|
# 安装指定发行版
|
||||||
|
wsl --install -d Ubuntu-24.04
|
||||||
|
wsl --install -d Debian
|
||||||
|
|
||||||
|
# 设置默认发行版
|
||||||
|
wsl --set-default Ubuntu-24.04
|
||||||
|
```
|
||||||
|
|
||||||
|
### 确保使用 WSL2(而非 WSL1)
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# 查看当前版本
|
||||||
|
wsl --list --verbose
|
||||||
|
# 输出中 VERSION 列应为 2
|
||||||
|
|
||||||
|
# 如果显示为 1,升级到 WSL2
|
||||||
|
wsl --set-version Ubuntu 2
|
||||||
|
|
||||||
|
# 将 WSL2 设为未来安装的默认版本
|
||||||
|
wsl --set-default-version 2
|
||||||
|
```
|
||||||
|
|
||||||
|
### WSL2 中配置开发环境
|
||||||
|
|
||||||
|
进入 WSL2 后,按 Linux 方式配置即可(参考上方的 Python/Node.js/Docker Linux 安装章节):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 进入 WSL2
|
||||||
|
wsl
|
||||||
|
|
||||||
|
# 更新系统
|
||||||
|
sudo apt update && sudo apt upgrade -y
|
||||||
|
|
||||||
|
# 安装 Python
|
||||||
|
sudo apt install python3 python3-pip python3-venv
|
||||||
|
|
||||||
|
# 安装 Node.js
|
||||||
|
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
|
||||||
|
sudo apt install nodejs
|
||||||
|
|
||||||
|
# 安装 Docker(推荐使用 Docker Desktop 的 WSL2 后端,而非在 WSL2 内安装)
|
||||||
|
```
|
||||||
|
|
||||||
|
### WSL2 与 Windows 文件互访
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 在 WSL2 中访问 Windows 文件
|
||||||
|
ls /mnt/c/Users/你的用户名/Desktop/
|
||||||
|
|
||||||
|
# 在 Windows 中访问 WSL2 文件(资源管理器地址栏)
|
||||||
|
# \\wsl$\Ubuntu\home\你的用户名\
|
||||||
|
|
||||||
|
# 在 Windows Terminal 中打开 WSL2
|
||||||
|
wsl ~
|
||||||
|
```
|
||||||
|
|
||||||
|
### WSL2 常见问题
|
||||||
|
|
||||||
|
**"WslRegisterDistribution failed with error: 0x80370102"**:
|
||||||
|
CPU 虚拟化未启用。重启计算机进入 BIOS,启用 Intel VT-x 或 AMD-V。
|
||||||
|
|
||||||
|
**WSL2 网络问题(无法访问互联网)**:
|
||||||
|
```bash
|
||||||
|
# 在 WSL2 中
|
||||||
|
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
**WSL2 磁盘空间不足**:
|
||||||
|
```powershell
|
||||||
|
# 压缩 WSL2 虚拟磁盘
|
||||||
|
wsl --shutdown
|
||||||
|
# 使用 diskpart 压缩 ext4.vhdx(高级操作,请备份后再执行)
|
||||||
|
```
|
||||||
|
|
||||||
|
**DesireCore Windows 用户建议**:DesireCore 的环境检查功能(设置 → 环境检查)可以自动检测 Windows 版本、CPU 虚拟化、WSL2 安装状态,并提供一键修复。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 系统工具安装
|
## 系统工具安装
|
||||||
|
|
||||||
### LibreOffice
|
### LibreOffice
|
||||||
|
|||||||
Reference in New Issue
Block a user