diff --git a/.github/workflows/container.yml b/.github/workflows/container.yml index 2733099..2a1bcfa 100644 --- a/.github/workflows/container.yml +++ b/.github/workflows/container.yml @@ -52,3 +52,32 @@ jobs: push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + + build-and-push-scraper: + needs: check + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Log in to the Container registry + uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}/scraper + - name: Build and push Docker image + uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 + with: + context: . + file: Dockerfile.scraper + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/Dockerfile.scraper b/Dockerfile.scraper new file mode 100644 index 0000000..c44dc49 --- /dev/null +++ b/Dockerfile.scraper @@ -0,0 +1,23 @@ +FROM docker.io/oven/bun:1-alpine AS base +WORKDIR /usr/src/app + +FROM base as build +ENV NODE_ENV=production +COPY . . +RUN bun install --frozen-lockfile +RUN bun build scraper/cli.ts --target=bun --outfile=/tmp/cli.build.js + +FROM base + +# Scraper +COPY --from=build /tmp/cli.build.js /bin/scraper +COPY --from=build /usr/src/app/db-datos/drizzle /bin/drizzle + +ENV NODE_ENV=production +ENV DB_PATH=/db/db.db + +# Cron scraper +RUN printf "#!/bin/sh\nexec bun /bin/scraper auto\n" > /etc/periodic/daily/scraper \ + && chmod +x /etc/periodic/daily/scraper + +CMD ["busybox", "crond", "-f", "-l2"] \ No newline at end of file diff --git a/sitio/src/routes/+page.svelte b/sitio/src/routes/+page.svelte index e16cb94..d41f231 100644 --- a/sitio/src/routes/+page.svelte +++ b/sitio/src/routes/+page.svelte @@ -30,6 +30,9 @@