Opbeans库存管理系统是由Elastic创建并维护的演示应用,本镜像为其Node.js实现版本,主要用于展示Elastic APM(应用性能监控)功能。

该应用使用以下技术:
需设置以下环境变量:
NODE_ENV - Node环境(设为production以启用Elastic APM)PORT - Opbeans服务器运行端口(默认:3000)PGHOST - PostgreSQL服务器主机PGPORT - PostgreSQL服务器端口PGUSER - PostgreSQL数据库用户名PGPASSWORD - PostgreSQL数据库密码PGDATABASE - PostgreSQL数据库名称(默认:opbeans)ELASTIC_APM_SERVICE_NAME - 服务器应用的Elastic APM服务名称(默认:opbeans-node)ELASTIC_APM_SERVER_URL - APM服务器URL(默认:http://localhost:8200)ELASTIC_APM_JS_SERVER_URL - 客户端应用的Elastic APM服务器URL(默认:http://localhost:3000)ELASTIC_APM_JS_SERVICE_NAME - 客户端应用的Elastic APM应用名称(默认:https://github.com/elastic/opbeans-frontend/blob/master/package.json%E4%B8%AD%E7%9A%84%60name%60%E5%AD%97%E6%AE%B5%EF%BC%89ELASTIC_APM_JS_SERVICE_VERSION - 客户端应用的Elastic APM应用版本(默认:https://github.com/elastic/opbeans-frontend/blob/master/package.json%E4%B8%AD%E7%9A%84%60version%60%E5%AD%97%E6%AE%B5%EF%BC%89完整的Elastic APM代理环境变量列表参见官方文档。
完整的PostgreSQL环境变量列表参见官方文档。
初始化数据库表结构和基础数据:
bashnpm run db-setup
生成随机订单:
bashnode db/generate_orders.js <num>
其中<num>为要创建的订单数量。
bashnpm start
若NODE_ENV非production,执行npm install时会自动克隆、安装并构建https://github.com/elastic/opbeans-frontend。如需更新opbeans-frontend,运行:
bashnpm run client-update
最简单的测试方式:
bashmake test
测试基于https://github.com/sstephenson/bats%E7%BC%96%E5%86%99%EF%BC%8C%E4%BD%8D%E4%BA%8E%60tests%60%E7%9B%AE%E5%BD%95%E4%B8%8B%E3%80%82
发布Docker镜像:
bashVERSION=1.2.3 make publish
注意:VERSION指将发布到仓库的Docker镜像标签。
访问路径/is-it-coffee-time可触发应用内置错误。
应用提供两个添加客户的npm脚本:
customer-add-ok - 正常添加新客户customer-add-redos - 添加客户失败,同时阻塞服务器处理其他请求通过以下命令运行:
bashnpm run <name>
若在Docker环境中运行,可使用docker-compose:
bashdocker-compose exec opbeans-node npm run customer-add-redos
yamlversion: '3' services: opbeans-node: image: elastic/opbeans-node:latest ports: - "3000:3000" environment: - NODE_ENV=production - PGHOST=postgres - PGUSER=postgres - PGPASSWORD=postgres - PGDATABASE=opbeans - ELASTIC_APM_SERVER_URL=http://apm-server:8200 depends_on: - postgres - redis - apm-server postgres: image: postgres:9.5 environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres - POSTGRES_DB=opbeans volumes: - postgres-data:/var/lib/postgresql/data redis: image: redis:alpine apm-server: image: docker.elastic.co/apm/apm-server:latest environment: - output.elasticsearch.enabled=false - apm-server.host=0.0.0.0:8200 volumes: postgres-data:
bashdocker-compose up -d # 初始化数据库 docker-compose exec opbeans-node npm run db-setup # 生成100个测试订单 docker-compose exec opbeans-node node db/generate_orders.js 100
MIT
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务