余尚辉 1 month ago
parent
commit
436bb99910
4 changed files with 67 additions and 0 deletions
  1. 17 0
      Dockerfile
  2. 17 0
      docker-compose.yml
  3. 11 0
      package.json
  4. 22 0
      server.js

+ 17 - 0
Dockerfile

@@ -0,0 +1,17 @@
+# 使用官方的 Node.js 镜像,选择稳定版本
+FROM node:16
+
+# 设置工作目录
+WORKDIR /usr/src/app
+
+# 将当前目录中的文件复制到容器中
+COPY . .
+
+# 安装依赖
+RUN npm install
+
+# 暴露服务端口
+EXPOSE 3006
+
+# 启动服务
+CMD ["node", "server.js"]

+ 17 - 0
docker-compose.yml

@@ -0,0 +1,17 @@
+version: '3'
+
+services:
+  log-server:
+    build: .
+    ports:
+      - "3006:3006"  # 将容器的 3000 端口映射到主机的 3000 端口
+    container_name: log-server
+    environment:
+      - NODE_ENV=production
+    deploy:
+      replicas: 4  # 启动 4 个副本,增加并发处理能力
+      resources:
+        limits:
+          cpus: "1.0"  # 每个容器最多使用 1 个 CPU 核心
+          memory: 1G   # 每个容器最多使用 1GB 内存
+    restart: always  # 容器崩溃后自动重启

+ 11 - 0
package.json

@@ -0,0 +1,11 @@
+{
+    "name": "log-server",
+    "version": "1.0.0",
+    "main": "server.js",
+    "dependencies": {
+      "express": "^4.18.2"
+    },
+    "scripts": {
+      "start": "node server.js"
+    }
+  }

+ 22 - 0
server.js

@@ -0,0 +1,22 @@
+const express = require('express');
+const app = express();
+
+// 解析 JSON 请求体
+app.use(express.json());
+
+// 收集前端 JavaScript 日志的接口
+app.post('/log', (req, res) => {
+  const logData = req.body;
+
+  // 在控制台输出日志数据
+  console.log('Received log:', logData);
+
+  // 返回成功响应
+  res.status(200).send('Log received');
+});
+
+// 启动服务,监听 3000 端口
+const PORT = 3000;
+app.listen(PORT, () => {
+  console.log(`Server running on http://localhost:${PORT}`);
+});