在 Debian 容器里跑 Node.js,一般有两种常见做法:用官方 Node 镜像(基于 Debian) 或 在纯 Debian 镜像里自己装 Node。下面分别说。
Node 官方镜像本身就是基于 Debian(或 Alpine)的,最简单。
docker run -it node:20 bash
进去后:
node -v
npm -v
mkdir /app && cd /app
cat > index.js <<'EOF'
console.log("Hello from Node.js");
EOF
node index.js
FROM node:20-bookworm
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["node", "index.js"]
构建并运行:
docker build -t mynode .
docker run -it --rm mynode
适合你想完全控制 Debian 环境的情况。
docker run -it debian:12 bash
apt update
apt install -y curl ca-certificates gnupg
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs
验证:
node -v
npm -v
node -e "console.log('Node is running')"
docker run -it -p 3000:3000 mynode
docker run -it -v $PWD:/app -w /app node:20 bash
FROM node:20-bookworm
WORKDIR /app
COPY . .
USER node
CMD ["node", "index.js"]
如果你是 只是本地测试 / 写服务 / 用 pm2 / 用 TypeScript,可以告诉我具体场景,我可以给你更合适的 Dockerfile 或命令。