引自免费微信小程序:皆我百晓生
好的,我很乐意为你解答这个问题。首先,我们需要解决Module not found: Can't resolve '@/app/components/admin/AdminApp'这个错误。
我们可以在Dockerfile内,通过修改dockerfile文件中的RUN npm run build这一行来解决这个问题。
修改后的dockerfile内容如下:
#使用Node.js20Alpine作为基础镜像
FROM node:20-alpine as build
ENV NEXT_PUBLIC_API_HOST_URL=""
#设置工作目录
WORKDIR /app
#复制package.json和package-lock.json到容器中
COPY package*.json ./
#安装依赖
RUN npm install
#将应用程序代码复制到容器中
COPY . .
#构建TypeScript代码
RUN npm run build
#使用多阶段构建
FROM node:20-alpine
WORKDIR /app
#从构建阶段复制构建的产物
COPY --from=build /app ./
#暴露3001端口
EXPOSE 3000
#启动应用程序
CMD ["npm","start"]
接下来,我们需要解决Package.json和package-lock.json文件无法找到的问题。
可以尝试在Dockerfile内添加一个检查是否存在这两个文件的脚本,并确保在运行npm run build时这些文件确实存在。
例如,我们可以使用以下代码检查这两个文件是否存在:
#!/bin/bash
if [ ! -f "$npm_package_root" ]; then
echo "Package.json file not found at $npm_package_root"
exit 1
fi
if [ ! -f "$npm_package_lock_file" ]; then
echo "Package.lock file not found at $npm_package_lock_file"
exit 1
fi
然后,当我们运行npm run build时,上述脚本会检查这两个文件是否存在。如果它们不存在,我们会显示错误消息并退出程序。
如果你需要我在其他位置提供解决方案,我会非常乐意帮你在那里。
