Skip to content

Commit d8b7ec7

Browse files
authored
chore: browser change (#7)
* chore: some updates * chore: chmod * fix: chown * chore: retries
1 parent 1ca40e3 commit d8b7ec7

8 files changed

Lines changed: 32 additions & 290 deletions

File tree

apps/web-parser/.puppeteerrc.cjs

Lines changed: 0 additions & 6 deletions
This file was deleted.

apps/web-parser/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88
"preview": "node .output/server/index.mjs"
99
},
1010
"dependencies": {
11+
"@playwright/browser-chromium": "catalog:",
1112
"@roll-stack/database": "workspace:*",
12-
"puppeteer": "catalog:"
13+
"playwright": "catalog:"
1314
},
1415
"devDependencies": {
1516
"nitropack": "catalog:"

apps/web-parser/server/tasks/yandex/update-data.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import type { Browser } from 'puppeteer'
1+
import type { Browser } from 'playwright'
22
import { repository } from '@roll-stack/database'
3-
import puppeteer from 'puppeteer'
3+
import { chromium } from 'playwright'
44

55
const logger = useLogger('yandex:update-data')
66

@@ -13,7 +13,7 @@ export default defineTask({
1313
// Wait 10 seconds
1414
await new Promise((resolve) => setTimeout(resolve, 10000))
1515

16-
const browser = await puppeteer.launch()
16+
const browser = await chromium.launch()
1717

1818
let points = await repository.feedback.listFeedbackPointsToUpdate()
1919

@@ -74,19 +74,18 @@ export default defineTask({
7474
async function getDataFromYandex(browser: Browser, url: string) {
7575
const page = await browser.newPage()
7676

77-
await page.setViewport({ width: 450, height: 600 })
77+
await page.setViewportSize({ width: 450, height: 600 })
7878
await page.goto(url)
7979

8080
// Wait full page load
81-
await page.waitForNetworkIdle()
81+
await page.waitForLoadState('networkidle')
8282
await new Promise((resolve) => setTimeout(resolve, 4000))
8383

8484
// Click on button with class "rating-ranking-view"
8585
await page.locator('.rating-ranking-view').click()
8686
await new Promise((resolve) => setTimeout(resolve, 1000))
8787
// Click on second button in class "rating-ranking-view__popup"
88-
const buttons = await page.$$('.rating-ranking-view__popup-line')
89-
await buttons[1]?.click()
88+
await page.locator('.rating-ranking-view__popup-line', { hasText: 'По новизне' }).click()
9089

9190
// Wait
9291
await new Promise((resolve) => setTimeout(resolve, 1000))

docker/web-app/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ ENV VERSION=${VERSION} \
4040
EXPOSE 3000
4141

4242
# Health check using exec form
43-
HEALTHCHECK --interval=30s --timeout=5s --start-period=60s \
44-
CMD ["health-check.sh"]
43+
HEALTHCHECK --interval=30s --timeout=5s --start-period=60s --retries=3 \
44+
CMD ["/app/health-check.sh"]
4545

4646
# Run the application
4747
ENTRYPOINT ["node"]

docker/web-parser/Dockerfile

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,19 @@ FROM base AS builder
55
WORKDIR /app
66
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./
77
COPY packages/database ./packages/database
8-
COPY apps/web-parser/.puppeteerrc.cjs ./
98
COPY apps/web-parser ./apps/web-parser
109
RUN npm install --ignore-scripts -g pnpm && \
1110
pnpm i --frozen-lockfile && \
1211
pnpm build --filter @roll-stack/web-parser
1312

14-
RUN pnpm dlx puppeteer browsers install chrome
15-
1613
# Production stage
1714
FROM base AS production
1815
RUN apk add --no-cache curl
1916
WORKDIR /app
2017

2118
# Copy built artifacts from builder
2219
COPY --from=builder /app/apps/web-parser/.output .
23-
COPY --from=builder /root/.cache/puppeteer /home/appuser/.cache/puppeteer
20+
COPY --from=builder --chmod=755 /root/.cache/ms-playwright /home/appuser/.cache/ms-playwright
2421
COPY docker/web-parser/health-check.sh ./
2522

2623
# Running as non-root is a security best practice
@@ -43,7 +40,7 @@ ENV VERSION=${VERSION} \
4340
EXPOSE 3000
4441

4542
# Health check using exec form
46-
HEALTHCHECK --interval=30s --timeout=5s --start-period=60s \
43+
HEALTHCHECK --interval=30s --timeout=5s --start-period=60s --retries=3 \
4744
CMD ["/app/health-check.sh"]
4845

4946
# Run the application

docker/web-storefront/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ ENV VERSION=${VERSION} \
4040
EXPOSE 3000
4141

4242
# Health check using exec form
43-
HEALTHCHECK --interval=30s --timeout=5s --start-period=60s \
44-
CMD ["health-check.sh"]
43+
HEALTHCHECK --interval=30s --timeout=5s --start-period=60s --retries=3 \
44+
CMD ["/app/health-check.sh"]
4545

4646
# Run the application
4747
ENTRYPOINT ["node"]

0 commit comments

Comments
 (0)