docker - 使用 nginx 服务器构建 NextJS Docker 映像
问题描述
我是 docker 新手,并试图通过它的文档来学习它。因为我需要使用 docker 镜像为 nginx 服务器创建 NextJS 构建,所以我遵循了以下过程。
- 安装
nginx
80 to 3000
在默认配置中播种端口。- 将目录符号链接
out
到基本 nginx 目录 - 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
解决方案
我对 alpine 映像没有太多经验,但我认为您必须使用apk
(Alpine Package Keeper) 来安装软件包
尝试apk add nginx
代替apt-get install nginx -y
推荐阅读
- python - 读取 Excel 文件并将行排列为列(粗体),行值位于粗体行下方?
- python - 在 Kivy 中动态添加按钮时出错
- java - AWS S3 v2 GetObject 无法解组响应 (java.net.SocketTimeoutException)
- python - 从特定页面抓取特定 URL
- jupyter-notebook - 无法启动内核 [Errorno 2] Jupyter Notebook
- regex - 正则表达式:计算不同地方的出现次数
- javascript - 动态循环多维数组并展平其中的对象
- javascript - 使用 Office JS Api 从 Word 文档的文本框中提取文本
- aws-amplify - AWS APPSYNC 如何应用 aws_api_key 授权
- javascript - 恢复被覆盖的字符串原型