Token导航 LogoToken导航TokenDH.com
运维和基础设施敏感数据github未标认证来源可访问clear审计通过

docker-deploymentDocker 部署

Agent Skill

用于辅助云资源、部署、容器、基础设施和运维自动化任务。它适合让 Agent 检查配置、整理部署步骤、分析资源状态、生成排障思路或辅助云服务接入。使用时需要明确目标环境、账号权限、区域和资源组,区分本地测试与生产操作;涉及删除资源、重启服务、修改网络或权限配置时,应先确认影响范围。

总安装

8,636

周安装

346

GitHub Stars

2

下载量

2,796
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:docker-deployment(Docker 部署)
来源仓库:https://github.com/pluginagentmarketplace/custom-plugin-nodejs
仓库路径:skills/docker-deployment
安装命令:
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-nodejs --skill docker-deployment
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-nodejs --skill docker-deployment

简介

专精 Node.js 应用的容器化与发布流程,提供端到端部署自动化方案。

  • 包含基础镜像选择、依赖精简、多阶段构建优化及滚动更新策略配置。
  • 支持本地开发与生产环境差异化配置,集成健康检查与资源限制设置。
  • 需确认 Node.js 版本、端口映射规则及目标部署平台(如 Kubernetes)。
  • docker-deployment 属于运维和基础设施类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Docker Deployment Skill

Master containerizing and deploying Node.js applications with Docker for consistent, portable deployments.

Quick Start

Dockerize Node.js app in 3 steps:

  1. Create Dockerfile - Define container image
  2. Build Image - docker build -t myapp.
  3. Run Container - docker run -p 3000:3000 myapp

Core Concepts

Basic Dockerfile

FROM node:18-alpine

WORKDIR /app

COPY package*.json ./
RUN npm ci --only=production

COPY . .

EXPOSE 3000

CMD ["node", "src/index.js"]

Multi-Stage Build (Optimized)

# Build stage
FROM node:18-alpine AS builder

WORKDIR /app

COPY package*.json ./
RUN npm ci --only=production

COPY . .

# Production stage
FROM node:18-alpine

WORKDIR /app

# Copy from builder
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app .

# Create non-root user
RUN addgroup -g 1001 -S nodejs && \
    adduser -S nodejs -u 1001

USER nodejs

EXPOSE 3000

HEALTHCHECK --interval=30s --timeout=3s \
  CMD node healthcheck.js || exit 1

CMD ["node", "src/index.js"]

Learning Path

Beginner (1-2 weeks)

  • ✅ Understand Docker basics
  • ✅ Create simple Dockerfile
  • ✅ Build and run containers
  • ✅ Manage volumes and networks

Intermediate (3-4 weeks)

  • ✅ Multi-stage builds
  • ✅ Docker Compose
  • ✅ Environment variables
  • ✅ Health checks

Advanced (5-6 weeks)

  • ✅ Image optimization
  • ✅ Production best practices
  • ✅ Container orchestration
  • ✅ CI/CD integration

Docker Compose

# docker-compose.yml
version: '3.8'

services:
  app:
    build: .
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
      - DATABASE_URL=postgresql://db:5432/myapp
      - REDIS_URL=redis://redis:6379
    depends_on:
      - db
      - redis
    restart: unless-stopped

  db:
    image: postgres:15-alpine
    environment:
      - POSTGRES_USER=myapp
      - POSTGRES_PASSWORD=secret
      - POSTGRES_DB=myapp
    volumes:
      - postgres-data:/var/lib/postgresql/data

  redis:
    image: redis:7-alpine
    volumes:
      - redis-data:/data

  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    depends_on:
      - app

volumes:
  postgres-data:
  redis-data:

Docker Compose Commands

# Start services
docker-compose up -d

# View logs
docker-compose logs -f app

# Stop services
docker-compose down

# Rebuild images
docker-compose up -d --build

# Scale services
docker-compose up -d --scale app=3

.dockerignore

node_modules
npm-debug.log
.git
.gitignore
.env
.env.local
.vscode
*.md
tests
coverage
.github
Dockerfile
docker-compose.yml

Docker Commands

# Build image
docker build -t myapp:latest .

# Run container
docker run -d -p 3000:3000 --name myapp myapp:latest

# View logs
docker logs -f myapp

# Enter container
docker exec -it myapp sh

# Stop container
docker stop myapp

# Remove container
docker rm myapp

# List images
docker images

# Remove image
docker rmi myapp:latest

# Prune unused resources
docker system prune -a

Environment Variables

# In Dockerfile
ENV NODE_ENV=production
ENV PORT=3000

# Or in docker-compose.yml
environment:
  - NODE_ENV=production
  - PORT=3000

# Or from .env file
env_file:
  - .env.production

Volumes for Persistence

services:
  app:
    volumes:
      - ./logs:/app/logs              # Bind mount
      - node_modules:/app/node_modules # Named volume

volumes:
  node_modules:

Health Checks

# In Dockerfile
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s \
  CMD node healthcheck.js || exit 1
// healthcheck.js
const http = require('http');

const options = {
  host: 'localhost',
  port: 3000,
  path: '/health',
  timeout: 2000
};

const request = http.request(options, (res) => {
  console.log(`STATUS: ${res.statusCode}`);
  process.exit(res.statusCode === 200 ? 0 : 1);
});

request.on('error', (err) => {
  console.log('ERROR:', err);
  process.exit(1);
});

request.end();

Image Optimization

# Use Alpine (smaller base image)
FROM node:18-alpine  # 180MB vs node:18 (1GB)

# Multi-stage build (remove build dependencies)
# Use .dockerignore (exclude unnecessary files)
# npm ci instead of npm install (faster, deterministic)
# Only production dependencies
RUN npm ci --only=production

# Combine RUN commands (fewer layers)
RUN apk add --no-cache git && \
    npm ci && \
    apk del git

Production Best Practices

FROM node:18-alpine

# Don't run as root
RUN addgroup -g 1001 -S nodejs && \
    adduser -S nodejs -u 1001

WORKDIR /app

COPY --chown=nodejs:nodejs package*.json ./
RUN npm ci --only=production

COPY --chown=nodejs:nodejs . .

USER nodejs

# Health check
HEALTHCHECK CMD node healthcheck.js || exit 1

# Use node instead of npm start (better signal handling)
CMD ["node", "src/index.js"]

Docker Hub Deployment

# Login
docker login

# Tag image
docker tag myapp:latest username/myapp:1.0.0
docker tag myapp:latest username/myapp:latest

# Push to Docker Hub
docker push username/myapp:1.0.0
docker push username/myapp:latest

# Pull from Docker Hub
docker pull username/myapp:latest

CI/CD with GitHub Actions

name: Docker Build & Deploy

on:
  push:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - uses: docker/setup-buildx-action@v2

      - uses: docker/login-action@v2
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - uses: docker/build-push-action@v4
        with:
          push: true
          tags: username/myapp:latest
          cache-from: type=gha
          cache-to: type=gha,mode=max

Common Issues & Solutions

Node modules caching

# Cache node_modules layer
COPY package*.json ./
RUN npm ci
COPY . .  # This doesn't rebuild node_modules

Signal handling

# Use node directly (not npm)
CMD ["node", "src/index.js"]

# In app: Handle SIGTERM
process.on('SIGTERM', () => {
  server.close(() => process.exit(0));
});

When to Use

Use Docker deployment when:

  • Need consistent environments (dev, staging, prod)
  • Deploying microservices
  • Want easy scaling and orchestration
  • Using cloud platforms (AWS, GCP, Azure)
  • Implementing CI/CD pipelines

Related Skills

  • Express REST API (containerize APIs)
  • Database Integration (multi-container setup)
  • Testing & Debugging (test in containers)
  • Performance Optimization (optimize images)

Resources

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

27.4%
按下载量换算766

OpenCode

22.53%
按下载量换算630

Gemini CLI

17.53%
按下载量换算490

Antigravity

12.12%
按下载量换算339

Codex

7.42%
按下载量换算207

trae

2.94%
按下载量换算82

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills