fix: upgrade Node 18 to 22 and fix Puppeteer compatibility
- Switch from Alpine to Debian slim for correct Chromium architecture
(fixes ARM/Apple Silicon support)
- Upgrade Puppeteer 21 to 24, use system Chromium via PUPPETEER_EXECUTABLE_PATH
- Replace removed page.waitForTimeout() with setTimeout
- Set NODE_ENV=production in Dockerfile to prevent pino-pretty import
- Improve error logging with Pino's { err: error } pattern
- Add build: . to docker-compose for local development builds
This commit is contained in:
@@ -81,7 +81,7 @@ router.post('/api/scrape-courses', async (req, res) => {
|
||||
message: `Successfully scraped ${courses.length} courses`
|
||||
});
|
||||
} catch (error) {
|
||||
logger.error('Error scraping courses:', error.message);
|
||||
logger.error({ err: error }, 'Error scraping courses');
|
||||
if (browser) {
|
||||
try { await browser.close(); } catch (e) {}
|
||||
}
|
||||
@@ -230,7 +230,7 @@ router.post('/api/scrape-layouts/:courseId', async (req, res) => {
|
||||
message: `Successfully scraped ${layouts.length} layouts and processed ${Object.keys(eventGroups).length} events for ${course.name}`
|
||||
};
|
||||
} catch (error) {
|
||||
logger.error('Error scraping layouts:', error.message);
|
||||
logger.error({ err: error }, 'Error scraping layouts');
|
||||
if (browser) {
|
||||
try { await browser.close(); } catch (e) {}
|
||||
}
|
||||
@@ -361,7 +361,7 @@ router.post('/api/scrape-event-results/:courseId', async (req, res) => {
|
||||
message: `Processed ${Object.keys(eventGroups).length} events, updated ${savedCount} layouts`
|
||||
});
|
||||
} catch (error) {
|
||||
logger.error('Error scraping event results:', error.message);
|
||||
logger.error({ err: error }, 'Error scraping event results');
|
||||
if (browser) {
|
||||
try { await browser.close(); } catch (e) {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user