代码拉取完成,页面将自动刷新
# Install dependencies only when needed
FROM apitable/nodepy:16.15.0-alpine AS deps
RUN npm install -g pnpm@8.13.1
WORKDIR /workspace-install
COPY ./pnpm-workspace.yaml ./package.json ./pnpm-lock.yaml ./
COPY ./patches/ ./patches
# datasheet dependencies packages
COPY packages/components/package.json ./packages/components/
COPY packages/core/package.json ./packages/core/
COPY packages/databus-wasm-web/package.json ./packages/databus-wasm-web/
COPY packages/databus-wasm-nodejs/package.json ./packages/databus-wasm-nodejs/
COPY packages/i18n-lang/package.json ./packages/i18n-lang/
COPY packages/icons/package.json ./packages/icons/
COPY packages/widget-sdk/package.json ./packages/widget-sdk/
COPY packages/ai-components/package.json ./packages/ai-components/
COPY packages/api-client/package.json ./packages/api-client/
# datasheet main
COPY packages/datasheet/package.json ./packages/datasheet/
RUN pnpm install
# stage builder
FROM apitable/nodepy:16.15.0-alpine AS builder
ARG SEMVER_FULL="v0.0.0-alpha"
ARG NEXT_ASSET_PREFIX=""
ARG NEXT_PUBLIC_ASSET_PREFIX=""
ENV SEMVER_FULL=${SEMVER_FULL}
RUN npm install -g pnpm@8.13.1
WORKDIR /app
COPY ./pnpm-workspace.yaml ./build.js ./package.json ./pnpm-lock.yaml ./nx.json ./common-tsconfig.json ./tsconfig.json ./.eslintrc ./
COPY packages/ ./packages/
COPY --from=deps /workspace-install/patches ./patches
COPY --from=deps /workspace-install/node_modules ./node_modules
COPY --from=deps /workspace-install/packages/datasheet/node_modules ./packages/datasheet/node_modules
COPY --from=deps /workspace-install/packages/components/node_modules ./packages/components/node_modules
COPY --from=deps /workspace-install/packages/core/node_modules ./packages/core/node_modules
COPY --from=deps /workspace-install/packages/icons/node_modules ./packages/icons/node_modules
COPY --from=deps /workspace-install/packages/i18n-lang/node_modules ./packages/i18n-lang/node_modules
COPY --from=deps /workspace-install/packages/widget-sdk/node_modules ./packages/widget-sdk/node_modules
COPY --from=deps /workspace-install/packages/ai-components/node_modules ./packages/ai-components/node_modules
COPY --from=deps /workspace-install/packages/api-client/node_modules ./packages/api-client/node_modules
RUN set -eux; \
sed -i~ '$a\WEB_CLIENT_VERSION='${SEMVER_FULL}'' packages/datasheet/.env; \
sed -i~ 's~^NEXT_ASSET_PREFIX=.*~NEXT_ASSET_PREFIX='${NEXT_ASSET_PREFIX}'~' packages/datasheet/.env; \
sed -i~ 's~^NEXT_PUBLIC_ASSET_PREFIX=.*~NEXT_PUBLIC_ASSET_PREFIX='${NEXT_PUBLIC_ASSET_PREFIX}'~' packages/datasheet/.env
RUN pnpm --version
RUN pnpm run build:dst
# stage runner
FROM apitable/nodepy:16.15.0-alpine AS runner
WORKDIR /app
ENV NODE_ENV production
# Uncomment the following line in case you want to disable telemetry during runtime.
ENV NEXT_TELEMETRY_DISABLED 1
RUN addgroup --system --gid 1001 nodejs && adduser --system --uid 1001 nextjs
COPY --from=builder /app/pnpm-workspace.yaml /app/package.json /app/pnpm-lock.yaml ./
COPY --from=builder /app/packages/datasheet/public ./packages/datasheet/public
COPY --from=builder /app/packages/datasheet/next.config.js \
/app/packages/datasheet/package.json \
./packages/datasheet/
# Automatically leverage output traces to reduce image size
# https://nextjs.org/docs/advanced-features/output-file-tracing
COPY --from=builder --chown=nextjs:nodejs /app/packages/datasheet/web_build/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/packages/datasheet/web_build/static ./packages/datasheet/web_build/static
WORKDIR /app/packages/datasheet
USER nextjs
EXPOSE 8080
ENV PORT 8080
CMD [ "node", "server.js" ]
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。