เกิดข้อผิดพลาดกับ docker และตอบสนดิจิตอลซองจดหมายนกิจวัตรประจำวั::ยังไม่รองรับ

0

คำถาม

ฉันมีเรียนใน docker แน่นอและครูมีเตรียมไว้ให้เป็นโครงการแค่สตาร์ทเตอร์กับบางอย่าดีกว่าเก่าของตอบโต้นรหัสมอส

ฉัน dockerized งโต้ตอบโครงการอยู่ที่นี่เป็นที่เรียบง่าย Dockerfile:

FROM node

WORKDIR /app

COPY package.json .

RUN npm i

COPY . .

EXPOSE 3000

CMD ["npm", "start"]

งั้นฉันสร้างภาพ:

docker build -t goals-react .

และวิ่งหนีเป็นตู้คอนเทนเนอร์อยู่ในแนนโหมด:

docker run --name goals-app --rm -p 3000:3000 goals-react

นี่คือการส่งออกฉันได้รับ:

> [email protected] start
> react-scripts start

ℹ 「wds」: Project is running at http://172.17.0.4/
ℹ 「wds」: webpack output is served from
ℹ 「wds」: Content not from webpack is served from /app/public
ℹ 「wds」: 404s will fallback to /

Starting the development server...

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:67:19)      
    at Object.createHash (node:crypto:130:10)
    at module.exports (/app/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/app/node_modules/webpack/lib/NormalModule.js:417:16)
    at handleParseError (/app/node_modules/webpack/lib/NormalModule.js:471:10)
    at /app/node_modules/webpack/lib/NormalModule.js:503:5
    at /app/node_modules/webpack/lib/NormalModule.js:358:12
    at /app/node_modules/loader-runner/lib/LoaderRunner.js:373:3
    at iterateNormalLoaders (/app/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
    at iterateNormalLoaders (/app/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
/app/node_modules/react-scripts/scripts/start.js:19
  throw err;
  ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:67:19)      
    at Object.createHash (node:crypto:130:10)
    at module.exports (/app/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/app/node_modules/webpack/lib/NormalModule.js:417:16)
    at /app/node_modules/webpack/lib/NormalModule.js:452:10
    at /app/node_modules/webpack/lib/NormalModule.js:323:13
    at /app/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /app/node_modules/loader-runner/lib/LoaderRunner.js:233:18
    at context.callback (/app/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
    at /app/node_modules/babel-loader/lib/index.js:59:103 {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Node.js v17.1.0

ฉันคิดว่ามันเป็นเพราะโครงการตอบโต้ใช้เก่าของตอบโต้ดังนั้นฉัน สามารถยกระดับเป็นแพ็คเก็จฉันทำอยู่บ่อยๆlanguage องแฟ้มกับคนทำตามคำสั่งของ:

npx npm-check-updates -u
npm install

งั้นฉันเอาตัวเองและสร้างตัวขึ้นใหม่ภาพและจากนั้นก็วิ่งหนีเป็นตู้คอนเทนเนอร์ใหม่:

docker rmi goals-react
docker build -t goals-react .
docker run --name goals-app --rm -p 3000:3000 goals-react

แต่ต้องของเซอร์ไพรส์ฉันได้รับเดียวกับข้อผิดพลาด ดังนั้นฉันไปเสิร์ชกูเกิ้ล digital envelope routines::unsupported และฉันเจอรึยังอีก stackoverflow กัน.

ฉันประหารคอยตามคำสั่ง:

export NODE_OPTIONS=--openssl-legacy-provider

งั้นฉันสร้างมาแทนใหม่ภาพและเริ่มงานใหม่ตู้คอนเทนเนอแต่ต้องไม่ avail. ฉันตัดสินใจที่จะอ่านข้อผิดพลาดข้อความมากกว่าให้รอบคอบก่อนและมันดูเหมือนว่าจะเป็น webpack ข้อผิดพลาด ฉันไปที่ webpack github หน้าและฉันรู้ว่ามันต้องมีใครซักคนเดียวกับปัญหา ที่นี่อย่างไรก็ตามปัญหาของมันปิดไปแล้ว พวกเขาแนะนำที่เหนือคำสั่ง,แต่มันเห็นได้ชัดว่าไม่ได้ทำงานสำหรับฉัน

ขอบคุณล่วงหน้าสำหรับพแจ้งการใช้งานและสร้างสรรค์ช่วยด้วย

แก้ไข:

ตามที่ร้องขอมาย@MikiBelavista มาเป็นแพ็คเก็จฉันทำอยู่บ่อยๆlanguage แฟ้ม:

{
  "name": "frontend",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^5.15.1",
    "@testing-library/react": "^12.1.2",
    "@testing-library/user-event": "^13.5.0",
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "react-scripts": "4.0.3"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

docker node.js reactjs webpack
2021-11-24 04:43:15
2

คำตอบที่ดีที่สุด

1

เปลี่ยนเส้นของคุณ

"start": "react-scripts start",

ต้อง

"start": "react-scripts --openssl-legacy-provider start"

แต่เป็นระมัดระวังเรื่องนั้นเป็นอย่าใช้ openssl implementations ของดร.ปาร์นั่นต้องถูกพิมรดกตกทอด. มากก ใช้ Openssl

2021-11-24 07:37:17
0

ปรับปรุงเป็นแพ็คเก็จฉันทำอยู่บ่อยๆlanguage"เริ่มต้น"สคริปต์ที่อ่านแล้ว:

"start": "react-scripts --openssl-legacy-provider start"

ทำให้แน่ใจว่าคุณสร้าง docker ภาพไม่อย่างนั้นคุณจะไปคนเดียวกับข้อผิดพลาด

docker build --pull --rm -f "Dockerfile" -t yourappname:latest "."
2021-12-08 21:53:56

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่