我正在尝试在. Docker文件中使用nextjs应用程序构建docker容器,如下所示:
FROM node:16.16.0
RUN npm install --location=global pm2
WORKDIR /var/www/project-front
COPY package.json yarn.lock ./
RUN yarn install --frozen-lockfile --production
COPY ./ /var/www/project-front
RUN /bin/bash -c 'yarn build'
EXPOSE 3000
USER node
# Launch app with PM2
CMD [ "pm2-runtime", "start", "npm", "--", "start" ]
我的typescript和@types依赖项是dev依赖项,因此它们不会安装在该构建中,从而导致构建失败。
我试过在next.config.js中使用ignoreBuildErrors prop,但是这使得很多CI检查都没有用。所以问题是,我真的必须安装我的typescript依赖项,而不是作为dev deps,或者可能有其他方法?
我试图实现所有的ci检查都是检查类型的有效性,但在生产中它是无用的,所以我不想安装不必要的包。
1条答案
按热度按时间8cdiaqws1#
使用multi-stage Docker build。例如:
一个缺点是你必须安装一些依赖项两次。一个替代方案是复制在Docker构建之外构建的文件。