Eroare cu docker și de a reacționa, digital plic rutine::neacceptat

0

Problema

Am înscris într-un docker și cursul de instructor a oferit un starter proiect cu unele destul de vechi reacționa cod.

Am dockerized reacționează proiect, aici e simplu Dockerfile:

FROM node

WORKDIR /app

COPY package.json .

RUN npm i

COPY . .

EXPOSE 3000

CMD ["npm", "start"]

Apoi mi-am construit imaginea:

docker build -t goals-react .

Și a fugit un recipient atașat în modul:

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

Aceasta este cea de ieșire-am primit:

> [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

Am presupus că a fost pentru că reacționează proiect a fost utilizați o versiune veche a reacționa, așa că am actualizat pachetul.json fișier cu următoarele comenzi:

npx npm-check-updates -u
npm install

Apoi am scos si l-a recreat imaginea, și apoi a fugit un nou container:

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

Dar spre surprinderea mea am primit aceeasi eroare. Așa că am căutat pe google digital envelope routines::unsupported și am găsit încă un alt stackoverflow discuție.

Am executați următoarea comandă:

export NODE_OPTIONS=--openssl-legacy-provider

Apoi am reconstruit imaginea și repornit container, dar fără nici un rezultat. Am decis pentru a citi un mesaj de eroare mai bine și se pare a fi un webpack eroare. M-am dus la webpack pagina github și mi-am dat seama că cineva a avut aceeași problemă, chiar aici, cu toate acestea, problema este închisă. Ei au recomandat, de asemenea, comanda de mai sus, dar care în mod evident nu funcționează pentru mine.

Multumesc anticipat pentru orice feedback-ul și de a ajuta.

Edit:

Așa cum a solicitat de către @MikiBelavista, aici este pachetul.fișier json:

{
  "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

Cel mai bun răspuns

1

Schimba linia

"start": "react-scripts start",

pentru a

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

Dar să fie conștienți de faptul că OpenSSL implementari de algoritmi care au fost considerate moștenire. Mai OpenSSl

2021-11-24 07:37:17
0

Actualizare pachet.json "start" script pentru a citi:

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

Asigurați-vă că reconstrui docker imagine, în caz contrar veți obține aceeași eroare.

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

În alte limbi

Această pagină este în alte limbi

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