首页 > 解决方案 > 使用 nginx 服务器构建 NextJS Docker 映像

问题描述

我是 docker 新手,并试图通过它的文档来学习它。因为我需要使用 docker 镜像为 nginx 服务器创建 NextJS 构建,所以我遵循了以下过程。

  1. 安装nginx
  2. 80 to 3000在默认配置中播种端口
  3. 将目录符号链接out到基本 nginx 目录
  4. CMD 负责输出目录的生产构建和符号链接。
FROM node:alpine AS deps

RUN apk add --no-cache libc6-compat git
RUN apt-get install nginx -y

WORKDIR /sample-app
COPY package.json yarn.lock ./
RUN yarn install --frozen-lockfile

FROM node:alpine AS builder
WORKDIR /sample-app
COPY . .
COPY --from=deps /sample-app/node_modules ./node_modules
RUN yarn build

FROM node:alpine AS runner
WORKDIR /sample-app

ENV NODE_ENV production

RUN ls -SF /sample-app/out /usr/share/nginx/html
RUN -p 3000:80 -v /sample-app/out:/usr/share/nginx/html:ro -d nginx
RUN addgroup -g 1001 -S nodejs
RUN adduser -S nextjs -u 1001
RUN chown -R nextjs:nodejs /sample-app/out
USER nextjs

CMD ["nginx -g daemon=off"]

在运行 docker build shell script 命令sudo docker build . -t sample-app时抛出错误The command '/bin/sh -c apt-get install nginx -y' returned a non-zero code: 127

标签: dockernginxnext.js

解决方案


我对 alpine 映像没有太多经验,但我认为您必须使用apk(Alpine Package Keeper) 来安装软件包

尝试apk add nginx代替apt-get install nginx -y


推荐阅读