FROM node:22-alpine AS deps WORKDIR /app COPY package*.json ./ RUN npm ci --ignore-scripts 2>/dev/null || npm install --ignore-scripts FROM node:22-alpine WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . # Ensure lethean_ui submodule stubs exist (submodule may not be cloned in Docker context) RUN rm -rf submodules/lethean_ui 2>/dev/null; \ mkdir -p submodules/lethean_ui/src/styles && \ printf 'import React from "react";\nexport function Footer({ className }) {\n return React.createElement("footer", { className, style: { padding: "20px", textAlign: "center", borderTop: "1px solid #333", color: "#888" } }, "Lethean Block Explorer | lethean.io");\n}\n' > submodules/lethean_ui/src/index.tsx && \ printf ':root { --primary: #00d4aa; }\n' > submodules/lethean_ui/src/styles/globals.scss && \ printf '$primary: #00d4aa;\n' > submodules/lethean_ui/src/styles/variables.scss && \ printf '{ "name": "lethean_ui", "version": "0.0.1", "main": "src/index.tsx" }\n' > submodules/lethean_ui/package.json ENV NODE_ENV=development EXPOSE 3335 CMD ["npx", "nodemon", "--exec", "tsx", "./server/server.ts"]