FROM node:22-alpine AS build WORKDIR /src COPY frontend/package.json web/package-lock.json ./ RUN npm ci COPY frontend/ ./ RUN npm run build FROM nginx:1.27-alpine AS runner COPY --chmod=755 deploy/entrypoint-resolver.sh /entrypoint-resolver.sh COPY --from=build /src/dist /usr/share/nginx/html # nginx 配置不 bake 进镜像:由 compose 挂到 /etc/booklib/(渲染产物), # entrypoint 启动时拷入原位、注入运行时 resolver 再 exec nginx ENTRYPOINT ["/entrypoint-resolver.sh"]