Sign inSign up

vera2016/ouonnkitv-armv7

By vera2016

•Updated 2 months ago

ouonnkitv for armv7

Image
0

227

vera2016/ouonnkitv-armv7 repository overview

OuonnkiTV armv7 image

https://github.com/Ouonnki/OuonnkiTV⁠

Dockerfile

# === 第一阶段:利用电脑原生 AMD64 性能打包一切、安装一切 ===
FROM --platform=$BUILDPLATFORM node:20-alpine AS builder
WORKDIR /app

# 安装 pnpm
RUN npm install -g [email protected]

# 复制依赖声明
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./
COPY packages/cms-core/package.json packages/cms-core/package.json

# 安装前端核心依赖(无轻量级 CSS 处理器,避免二进制问题)
RUN pnpm install --frozen-lockfile

# 复制源码并构建前端成品
COPY . .
RUN pnpm build

# 预装生产环境代理所需的 express 和 cors(利用 x86 平台快速安装)
RUN mkdir -p /app/prod_node_modules && \
    cd /app/prod_node_modules && \
    echo '{"type":"module"}' > package.json && \
    npm install --no-audit --no-fund [email protected] [email protected]

# === 第二阶段:纯粹的 ARMv7 运行时镜像 ===
FROM node:20-alpine AS production

RUN apk add --no-cache nginx supervisor && rm -rf /var/cache/apk/*
RUN mkdir -p /run/nginx /var/log/supervisor /app
WORKDIR /app

# 1. 复制代理服务端代码(新版本需包含 shared/ 和 scripts/ 目录)
COPY proxy-server.js ./
COPY shared/ ./shared/
COPY scripts/generate-runtime-config.mjs ./scripts/generate-runtime-config.mjs

# 2. 复制运行时入口脚本(新版本新增)
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
RUN chmod +x /usr/local/bin/docker-entrypoint.sh

# 3. 直接从第一阶段复制预装的依赖(无需再安装)
COPY --from=builder /app/prod_node_modules/package.json ./package.json
COPY --from=builder /app/prod_node_modules/node_modules ./node_modules

# 4. 从第一阶段复制构建好的前端静态文件
COPY --from=builder /app/dist /usr/share/nginx/html

# 5. 复制配置文件
COPY nginx.conf /etc/nginx/nginx.conf
COPY supervisord.conf /etc/supervisord.conf

EXPOSE 80

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]

Tag summary

Content type

Image

Digest

sha256:d673c34db…

Size

63.3 MB

Last updated

2 months ago

docker pull vera2016/ouonnkitv-armv7