Merge pull request #21 from bcye/feature/docker

Dockerize
This commit is contained in:
Bruce 2025-04-30 22:11:31 +02:00 committed by GitHub
commit 93d99bf062
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 53 additions and 14 deletions

View File

@ -1,8 +1,8 @@
.env
# NODE
node_modules
# PYTHON
__pycache__
.venv
.pytest_cache
docs
node_modules
output
sketching

33
.github/workflows/build-image.yaml vendored Normal file
View File

@ -0,0 +1,33 @@
name: Build Docker Image
on:
push:
tags:
- "docker/*"
jobs:
docker:
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push
uses: docker/build-push-action@v6
with:
push: true
tags: ghcr.io/bcye/structured-wikivoyage-exports:latest

View File

@ -1,12 +1,10 @@
FROM node:22
FROM ghcr.io/astral-sh/uv:0.6-python3.12-bookworm
WORKDIR /app
COPY package.json .
COPY package-lock.json .
COPY pyproject.toml uv.lock ./
RUN uv sync --frozen
RUN npm install
COPY . .
COPY index.ts .
CMD [ "node", "--max-old-space-size=4096", "--experimental-strip-types", "index.ts" ]
CMD ["uv", "run", "main.py"]

View File

@ -2,7 +2,15 @@
Small utility to convert the wikitext data from the Wikivoyage dumps into a structured format. The goal is to make it easier to work with the data and extract useful information programmatically.
## Installation
## Usage
### Docker
This script is intended to be run with docker. A docker image is [available from the GitHub registry](https://github.com/bcye/structured-wikivoyage-exports/pkgs/container/structured-wikivoyage-exports). For example, you may run it using the filesystem handler with `docker run -e HANDLER=filesystem -e HANDLER_FILESYSTEM_OUTPUT_DIR=/output -v ./output:/output --ulimit nofile=65536:65536 ghcr.io/bcye/structured-wikivoyage-exports`. For all the different options, refer to [the docs](docs).
### Types
TypeScript types for consuming the json output are available, you may install them from the [@bcye/structured-wikivoyage-types](https://www.npmjs.com/package/@bcye/structured-wikivoyage-types) npm package. Refer to the included docstrings in [types/index.d.ts](types/index.d.ts) for reference.
## Documentation