feat: 更新 Dockerfile 和 devcontainer.json
This commit is contained in:
@@ -9,10 +9,12 @@ ARG GIT_DELTA_VERSION=0.18.2
|
|||||||
ARG ZSH_IN_DOCKER_VERSION=1.2.1
|
ARG ZSH_IN_DOCKER_VERSION=1.2.1
|
||||||
ARG PNPM_HOME="/home/usr_vscode/.local/share/pnpm"
|
ARG PNPM_HOME="/home/usr_vscode/.local/share/pnpm"
|
||||||
ARG PATH="$PNPM_HOME:$PATH"
|
ARG PATH="$PNPM_HOME:$PATH"
|
||||||
|
ARG TZ=Asia/Shanghai
|
||||||
|
|
||||||
# 环境变量
|
# 环境变量
|
||||||
ENV LANG=zh_CN.UTF-8 \
|
ENV LANG=zh_CN.UTF-8 \
|
||||||
LC_ALL=zh_CN.UTF-8 \
|
LC_ALL=zh_CN.UTF-8 \
|
||||||
|
TZ=${TZ} \
|
||||||
# Set `DEVCONTAINER` environment variable to help with orientation
|
# Set `DEVCONTAINER` environment variable to help with orientation
|
||||||
DEVCONTAINER=true \
|
DEVCONTAINER=true \
|
||||||
# Set the default shell to zsh rather than sh
|
# Set the default shell to zsh rather than sh
|
||||||
@@ -73,14 +75,21 @@ USER usr_vscode
|
|||||||
# Default powerline10k theme
|
# Default powerline10k theme
|
||||||
RUN touch /home/usr_vscode/.zshrc \
|
RUN touch /home/usr_vscode/.zshrc \
|
||||||
&& sh -c "$(curl -L -o - https://github.com/deluan/zsh-in-docker/releases/download/v${ZSH_IN_DOCKER_VERSION}/zsh-in-docker.sh)" -- \
|
&& sh -c "$(curl -L -o - https://github.com/deluan/zsh-in-docker/releases/download/v${ZSH_IN_DOCKER_VERSION}/zsh-in-docker.sh)" -- \
|
||||||
-p git \
|
-p git \
|
||||||
-p fzf \
|
-p fzf \
|
||||||
-a "source <(fzf --zsh)" \
|
-a "source <(fzf --zsh)" \
|
||||||
-a "export PROMPT_COMMAND='history -a' && export HISTFILE=/commandhistory/.bash_history" \
|
-a "export PROMPT_COMMAND='history -a' && export HISTFILE=/commandhistory/.bash_history" \
|
||||||
-x \
|
-x \
|
||||||
|
# -a "source /usr/share/doc/fzf/examples/key-bindings.zsh" \
|
||||||
|
# -a "source /usr/share/doc/fzf/examples/completion.zsh" \
|
||||||
|
# https://github.com/deluan/zsh-in-docker/blob/55a4e476f78f37204af9dfc0290a92e52cf881b1/zsh-in-docker.sh#L121-L123
|
||||||
|
&& sed -i 's/^export LANG=.*/export LANG="zh_CN.UTF-8"/' /home/usr_vscode/.zshrc \
|
||||||
|
&& sed -i 's/^export LANGUAGE=.*/export LANGUAGE="zh_CN:zh"/' /home/usr_vscode/.zshrc \
|
||||||
|
&& sed -i 's/^export LC_ALL=.*/export LC_ALL="zh_CN.UTF-8"/' /home/usr_vscode/.zshrc \
|
||||||
|
# >>>>>
|
||||||
|
&& echo "" >> /home/usr_vscode/.zshrc \
|
||||||
|
&& echo "alias gemini='gemini --yolo -m gemini-2.5-pro'" >> /home/usr_vscode/.zshrc \
|
||||||
&& echo "alias claude='claude --dangerously-skip-permissions'" >> /home/usr_vscode/.zshrc
|
&& echo "alias claude='claude --dangerously-skip-permissions'" >> /home/usr_vscode/.zshrc
|
||||||
# -a "source /usr/share/doc/fzf/examples/key-bindings.zsh" \
|
|
||||||
# -a "source /usr/share/doc/fzf/examples/completion.zsh" \
|
|
||||||
|
|
||||||
# 安装 pnpm 和 Node.js
|
# 安装 pnpm 和 Node.js
|
||||||
# https://pnpm.io/installation#in-a-docker-container
|
# https://pnpm.io/installation#in-a-docker-container
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
"build": {
|
"build": {
|
||||||
"dockerfile": "Dockerfile",
|
"dockerfile": "Dockerfile",
|
||||||
"args": {
|
"args": {
|
||||||
"TZ": "${localEnv:TZ:Asia/Shanghai}"
|
//
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"runArgs": [
|
"runArgs": [
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
"terminal.integrated.defaultProfile.linux": "zsh",
|
"terminal.integrated.defaultProfile.linux": "zsh",
|
||||||
"terminal.integrated.profiles.linux": {
|
"terminal.integrated.profiles.linux": {
|
||||||
"bash": { "path": "bash", "icon": "terminal-bash" },
|
"bash": { "path": "bash", "icon": "terminal-bash" },
|
||||||
"zsh": { "path": "zsh", "icon": "terminal-debian" }
|
"zsh": { "path": "zsh", "icon": "terminal-debian", "overrideName": true }
|
||||||
},
|
},
|
||||||
|
|
||||||
// https://stackoverflow.com/questions/75708866/vscode-dev-container-fails-to-load-ms-vscode-js-debug-extension-correctly
|
// https://stackoverflow.com/questions/75708866/vscode-dev-container-fails-to-load-ms-vscode-js-debug-extension-correctly
|
||||||
@@ -83,18 +83,31 @@
|
|||||||
"ANTHROPIC_BASE_URL": "${localEnv:ANTHROPIC_BASE_URL}",
|
"ANTHROPIC_BASE_URL": "${localEnv:ANTHROPIC_BASE_URL}",
|
||||||
"GEMINI_API_KEY": "${localEnv:GEMINI_API_KEY}",
|
"GEMINI_API_KEY": "${localEnv:GEMINI_API_KEY}",
|
||||||
"GOOGLE_GEMINI_BASE_URL": "${localEnv:GOOGLE_GEMINI_BASE_URL}",
|
"GOOGLE_GEMINI_BASE_URL": "${localEnv:GOOGLE_GEMINI_BASE_URL}",
|
||||||
|
"NODE_OPTIONS": "--max-old-space-size=4096",
|
||||||
"CLAUDE_CONFIG_DIR": "/home/usr_vscode/.claude",
|
"CLAUDE_CONFIG_DIR": "/home/usr_vscode/.claude",
|
||||||
"NODE_OPTIONS": "--max-old-space-size=4096"
|
"TZ": "${localEnv:TZ:Asia/Shanghai}"
|
||||||
},
|
},
|
||||||
"remoteUser": "usr_vscode",
|
"remoteUser": "usr_vscode",
|
||||||
"mounts": [
|
"mounts": [
|
||||||
"source=${localWorkspaceFolderBasename}-bashhistory,target=/commandhistory,type=volume",
|
"source=${localWorkspaceFolderBasename}-bashhistory,target=/commandhistory,type=volume",
|
||||||
|
"source=${localWorkspaceFolderBasename}-lingma,target=/home/usr_vscode/.lingma,type=volume",
|
||||||
|
"source=${localWorkspaceFolderBasename}-gemini,target=/home/usr_vscode/.gemini,type=volume",
|
||||||
|
"source=${localWorkspaceFolderBasename}-claude-code-router,target=/home/usr_vscode/.claude-code-router,type=volume",
|
||||||
"source=${localWorkspaceFolderBasename}-claude-code-config,target=/home/usr_vscode/.claude,type=volume",
|
"source=${localWorkspaceFolderBasename}-claude-code-config,target=/home/usr_vscode/.claude,type=volume",
|
||||||
|
"source=${localWorkspaceFolderBasename}-pnpm-store,target=/home/usr_vscode/.pnpm-store,type=volume",
|
||||||
"source=${localWorkspaceFolderBasename}-node_modules,target=${containerWorkspaceFolder}/node_modules,type=volume"
|
"source=${localWorkspaceFolderBasename}-node_modules,target=${containerWorkspaceFolder}/node_modules,type=volume"
|
||||||
],
|
],
|
||||||
"postCreateCommand": "sudo chown usr_vscode node_modules", // 容器创建后执行 https://code.visualstudio.com/remote/advancedcontainers/improve-performance
|
"postCreateCommand": {
|
||||||
"postStartCommand": "pnpm -v; echo '${localWorkspaceFolderBasename}'", // 每次容器启动时执行
|
"安装依赖": "sudo chown usr_vscode node_modules; pnpm install",
|
||||||
// "postAttachCommand": "pnpm config get store-dir", // 连接到容器后执行
|
"fix-claude-code-router": "sudo chown -R usr_vscode /home/usr_vscode/.claude-code-router",
|
||||||
|
"fix-lingma": "sudo chown -R usr_vscode /home/usr_vscode/.lingma",
|
||||||
|
"fix-claude": "sudo chown -R usr_vscode /home/usr_vscode/.claude",
|
||||||
|
"fix-gemini": "sudo chown -R usr_vscode /home/usr_vscode/.gemini"
|
||||||
|
}, // 容器创建后执行 https://code.visualstudio.com/remote/advancedcontainers/improve-performance
|
||||||
|
"postStartCommand": {
|
||||||
|
"node version": "node -v"
|
||||||
|
}, // 每次容器启动时执行
|
||||||
|
"postAttachCommand": "echo 容器已连接: ${containerWorkspaceFolder}", // 连接到容器后执行
|
||||||
// "updateRemoteUserUID": true,
|
// "updateRemoteUserUID": true,
|
||||||
"waitFor": "postStartCommand",
|
"waitFor": "postStartCommand",
|
||||||
"workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=delegated",
|
"workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=delegated",
|
||||||
|
|||||||
@@ -2,5 +2,6 @@ packages:
|
|||||||
- 'packages/*'
|
- 'packages/*'
|
||||||
|
|
||||||
useNodeVersion: 24.11.0 # https://pnpm.io/zh/settings#usenodeversion
|
useNodeVersion: 24.11.0 # https://pnpm.io/zh/settings#usenodeversion
|
||||||
shamefullyHoist: true # https://pnpm.io/zh/settings#shamefullyhoist
|
# shamefullyHoist: false # https://pnpm.io/zh/settings#shamefullyhoist
|
||||||
|
|
||||||
# https://pnpm.io/zh/settings#node-mirror ???
|
# https://pnpm.io/zh/settings#node-mirror ???
|
||||||
|
|||||||
Reference in New Issue
Block a user