FROM node:22-alpine WORKDIR /app # Install runtime dependencies RUN apk add --no-cache wget curl docker-cli # Copy package files COPY neode-ui/package*.json ./ # Install Node dependencies (need all deps for mock backend) RUN npm install # Copy application code COPY neode-ui/ ./ # Sibling assets the mock backend reads relative to /app (../docker, ../demo): # the Bitcoin UI mock shell and any curated cloud files dropped into demo/files. COPY docker/bitcoin-ui /docker/bitcoin-ui COPY demo/files /demo/files # Expose port EXPOSE 5959 # Health check HEALTHCHECK --interval=30s --timeout=15s --retries=5 --start-period=180s \ CMD wget --quiet --tries=1 --spider http://localhost:5959/health || exit 1 # Start the mock backend with error handling CMD ["sh", "-c", "node mock-backend.js 2>&1 || (echo 'ERROR: Backend failed to start'; cat /app/package.json; ls -la /app; sleep infinity)"]