我尝试构建优化的 docker,但是当我尝试运行它时,它说 sh:下一个:未找到
这是 dockerfile
FROM node:20-alpine AS builder
WORKDIR /src
## Set local timezone in alpine linux
ARG TZ="Europe/Bratislava"
ENV TZ=${TZ}
RUN apk upgrade -qU \
&& apk add -qu tzdata \
&& ln -s /usr/share/zoneinfo/${TZ} /etc/localtime \
&& echo ${TZ} > /etc/timezone \
&& rm -rf /var/cache/apk/*
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:20-alpine AS runner
WORKDIR /src
COPY --from=builder /src/package.json .
COPY --from=builder /src/package-lock.json .
COPY --from=builder /src/next.config.js .
COPY --from=builder /src/public ./public
COPY --from=builder /src/.next/standalone ./
COPY --from=builder /src/.next/static ./.next/static
EXPOSE 3000
CMD npx next start
这个版本大约有 160MB,我想避免将 node_modules 复制到运行器,因为这样它的大小几乎为 1GB。
尝试在最后一行使用
CMD ["node", "server.js"]
而不是 CMD npx next start
。