You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows10构建React应用Docker Node容器时遇tls: bad record MAC错误求助

问题详情

操作系统信息

  • Windows 10
  • 版本22H2(内部版本19045.2728)

Dockerfile

# pull the base image
FROM node:lts-alpine

# set the working direction
WORKDIR /app

# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH

# install app dependencies
COPY package*.json ./


RUN npm install


# add app
COPY . ./

EXPOSE 3000

# start app
CMD ["npm", "start"]

package.json 文件

{
  "name": "frontend",
  "version": "0.1.0",
  "private": true,
  "proxy": "http://localhost:5000",
  "devServer": {
    "allowedHosts": [
      "localhost",
      "127.0.0.1"
    ]
  },
  "dependencies": {
    "@emotion/react": "^11.10.6",
    "@emotion/styled": "^11.10.6",
    "@material-ui/core": "^4.12.4",
    "@mui/material": "^5.11.11",
    "@reduxjs/toolkit": "^1.9.3",
    "@testing-library/jest-dom": "^5.16.5",
    "@testing-library/react": "^13.4.0",
    "@testing-library/user-event": "^13.5.0",
    "axios": "^1.3.3",
    "formik": "^2.2.9",
    "fsevents": "^2.1.3",
    "moment": "^2.29.4",
    "react": "^18.2.0",
    "react-auth-kit": "^2.8.2",
    "react-dom": "^18.2.0",
    "react-helmet": "^6.1.0",
    "react-icons": "^4.7.1",
    "react-persist": "^1.0.2",
    "react-rating-stars-component": "^2.2.0",
    "react-redux": "^8.0.5",
    "react-router-dom": "^6.8.1",
    "react-scripts": "5.0.1",
    "redux": "^4.2.1",
    "redux-devtools-extension": "^2.13.9",
    "redux-persist": "^6.0.0",
    "redux-thunk": "^2.4.2",
    "tailwindcss": "^3.2.6",
    "web-vitals": "^2.1.4",
    "yup": "^1.0.2"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

已尝试的解决方法

  • 将基础镜像改为node:14-alpine和node:slim,未解决原问题,反而出现新错误:
    #10 23.37 npm ERR! notsup Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
    
  • 在PowerShell中重启Docker

主要错误信息

=> ERROR [1/5] FROM docker.io/library/node:lts-alpine@sha256:ffc770cdc09c9e83cccd99d663bb6ed56cfaa1bab94baf1b12b626aebeca9c1  218.1s 
=> => resolve docker.io/library/node:lts-alpine@sha256:ffc770cdc09c9e83cccd99d663bb6ed56cfaa1bab94baf1b12b626aebeca9c10         0.0s 
=> => sha256:ffc770cdc09c9e83cccd99d663bb6ed56cfaa1bab94baf1b12b626aebeca9c10 1.43kB / 1.43kB                                   0.0s 
=> => sha256:19eaf41f3b8c2ac2f609ac8103f9246a6a6d46716cdbe49103fdb116e55ff0cc 1.16kB / 1.16kB                                   0.0s 
=> => sha256:f520ad35ba68f1ed1301a5eda87eaa722e468a9fc3a179868a035dc4c5dddaef 6.48kB / 6.48kB                                   0.0s 
=> => sha256:63b65145d645c1250c391b2d16ebe53b3747c295ca8ba2fcb6b0cf064a4dc21c 3.37MB / 3.37MB                                  15.7s 
=> => sha256:f41005eb563ce84e6c742a787d6a598fde273c134e94c90acc6115853a7f8315 10.49MB / 47.54MB                               218.1s 
=> => sha256:69dcb013f10fed3864b0f9915d6721b09f0c6717e5452ee96e04fde6082322a7 2.35MB / 2.35MB                                  13.1s 
=> => sha256:00a00d31565028f3c00c64959dafe4587320e8c99a39982ccda8a8a9ccef7123 449B / 449B                                      15.3s 
=> => extracting sha256:63b65145d645c1250c391b2d16ebe53b3747c295ca8ba2fcb6b0cf064a4dc21c                                        0.2s 
------
> [1/5] FROM docker.io/library/node:lts-alpine@sha256:ffc770cdc09c9e83cccd99d663bb6ed56cfaa1bab94baf1b12b626aebeca9c10:
------
failed to copy: local error: tls: bad record MAC

可行解决方案

针对 tls: bad record MAC 错误

  1. 清除Docker镜像缓存
    执行命令删除本地缓存的node镜像:

    docker rmi docker.io/library/node:lts-alpine
    

    然后重新拉取镜像:

    docker pull node:lts-alpine
    

    拉取完成后再重新构建项目。

  2. 检查网络连接
    该错误通常和TLS握手时的网络问题有关,尝试切换网络(比如从WiFi换成有线网络),或者关闭代理、VPN后重新构建。

  3. 重置Docker网络设置
    在Docker Desktop的设置中找到Network选项,点击Reset to factory defaults,重置完成后重启Docker再尝试构建。

针对 fsevents 平台不兼容错误

fsevents是macOS专属依赖,不需要在Linux镜像中安装,可通过以下两种方式解决:

  • 方法1:调整package.json
    将fsevents从dependencies移到devDependencies:
    "devDependencies": {
      "fsevents": "^2.1.3"
    }
    
  • 方法2:修改Dockerfile中的npm install命令
    将RUN npm install改为:
    RUN npm install --no-optional
    

内容的提问来源于stack exchange,提问作者vinith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 16:54:57