我尝试对 next.js 应用程序进行 dockerize。
所以我有这个 Dockerfile:
FROM node:18-alpine AS BUILD_IMAGE
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn install --frozen-lockfile
COPY . .
RUN yarn build
RUN npm prune --production
FROM node:18-alpine
WORKDIR /app
COPY --from=BUILD_IMAGE /app/package.json ./package.json
COPY --from=BUILD_IMAGE /app/node_modules ./node_modules
COPY --from=BUILD_IMAGE /app/.next ./.next
COPY --from=BUILD_IMAGE /app/public ./public
EXPOSE 3000
CMD ["yarn", "start"]
但是当我尝试使用以下命令构建 Dockerifile 时:
docker build -t frontend:v1 -f Dockerfile.prod .
我收到此错误:
ERROR: failed to solve: process "/bin/sh -c yarn install --frozen-lockfile" did not complete successfully: exit code: 1
在这一行:
RUN yarn install --frozen-lockfile
问题:如何解决错误:
failed to solve: process "/bin/sh -c yarn install --frozen-lockfile"
我必须进行纱线安装。我无法安装node_modules。所以我删除了锁定文件。但后来我又遇到了一些错误。所以我删除了node_modules。然后我在安装时遇到了一些错误
"@mui/utils": "^5.15.20",
所以我安装了那个包。我再次安装了纱线。然后它就成功了 - 我可以毫无错误地构建 docker 镜像。