我尝试构建一个执行代码的 Docker 映像:
\n码头工人构建。-t <YOUR_DOCKER_HUB_USERNAME>/my-nuxt-project
\n这是关于 nuxt.js 项目的,但是当我运行代码时,我收到以下错误:
\nStep 5/13 : RUN yarn build\n ---> Running in 4dd3684952ba\nyarn run v1.22.19\n$ nuxt build\n\xe2\x84\xb9 Production build\n\xe2\x84\xb9 Bundling for server and client side\n\xe2\x84\xb9 Target: server\n\xe2\x84\xb9 Using components loader to optimize imports\n\xe2\x84\xb9 Discovered Components: .nuxt/components/readme.md\n\xe2\x9c\x94 Builder initialized\n\xe2\x9c\x94 Nuxt files generated\n\xe2\x84\xb9 Compiling Client\n\nnode:internal/crypto/hash:71\n this[kHandle] = new _Hash(algorithm, xofLen);\n ^\n\nError: error:0308010C:digital envelope routines::unsupported\n at new Hash (node:internal/crypto/hash:71:19)\n at Object.createHash (node:crypto:133:10)\n at module.exports (/app/node_modules/webpack/lib/util/createHash.js:135:53)\n at NormalModule._initBuildHash (/app/node_modules/webpack/lib/NormalModule.js:417:16)\n at handleParseError (/app/node_modules/webpack/lib/NormalModule.js:471:10)\n at /app/node_modules/webpack/lib/NormalModule.js:503:5\n at /app/node_modules/webpack/lib/NormalModule.js:358:12\n at /app/node_modules/loader-runner/lib/LoaderRunner.js:373:3\n at iterateNormalLoaders (/app/node_modules/loader-runner/lib/LoaderRunner.js:214:10)\n at Array.<anonymous> (/app/node_modules/loader-runner/lib/LoaderRunner.js:205:4)\n at Storage.finished (/app/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)\n at /app/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9\n at /app/node_modules/graceful-fs/graceful-fs.js:123:16\n at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) {\n opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],\n library: 'digital envelope routines',\n reason: 'unsupported',\n code: 'ERR_OSSL_EVP_UNSUPPORTED'\n}\n\nNode.js v18.12.0\nerror Command failed with exit code 1.\nRun Code Online (Sandbox Code Playgroud)\n这是我正在使用的 Dockerfile。我正在按照 nuxt 文档来构建图像。
\nFROM node:lts as builder\n\nWORKDIR /app\n\nCOPY . .\n\nRUN yarn install \\\n --prefer-offline \\\n --frozen-lockfile \\\n --non-interactive \\\n --production=false\n\nRUN yarn build\n\nRUN rm -rf node_modules && \\\n NODE_ENV=production yarn install \\\n --prefer-offline \\\n --pure-lockfile \\\n --non-interactive \\\n --production=true\n\nFROM node:lts\n\nWORKDIR /app\n\nCOPY --from=builder /app .\n\nENV HOST 0.0.0.0\nEXPOSE 3000\n\nCMD [ "yarn", "start" ]\nRun Code Online (Sandbox Code Playgroud)\n有人知道如何调试吗?
\n尝试添加NODE_OPTIONS=--openssl-legacy-provider为 docker 环境变量。所以你的Dockerfile应该是这样的。尝试Dockerfile在此更改后重建您的。
FROM node:lts as builder
WORKDIR /app
ENV NODE_OPTIONS=--openssl-legacy-provider
COPY . .
RUN yarn install \
--prefer-offline \
--frozen-lockfile \
--non-interactive \
--production=false
RUN yarn build
RUN rm -rf node_modules && \
NODE_ENV=production yarn install \
--prefer-offline \
--pure-lockfile \
--non-interactive \
--production=true
FROM node:lts
WORKDIR /app
COPY --from=builder /app .
ENV HOST 0.0.0.0
EXPOSE 3000
CMD [ "yarn", "start" ]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8377 次 |
| 最近记录: |