diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1fa6cb6 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,19 @@ +FROM alpine:latest + +# Package list taken from Pillow documentation: +# https://pillow.readthedocs.io/en/stable/installation.html#building-on-linux +RUN apk add tiff-dev jpeg-dev openjpeg-dev zlib-dev freetype-dev lcms2-dev \ + libwebp-dev tcl-dev tk-dev harfbuzz-dev fribidi-dev libimagequant-dev \ + libxcb-dev libpng-dev gcc musl-dev python3 python3-dev py3-pip py3-cryptography \ + && pip install poetry + +COPY . /leech + +RUN cd /leech \ + && poetry config virtualenvs.create false \ + && poetry install --no-dev + +WORKDIR /work + +ENTRYPOINT ["/leech/leech.py"] + diff --git a/README.markdown b/README.markdown index f806efa..d09b260 100644 --- a/README.markdown +++ b/README.markdown @@ -127,6 +127,21 @@ Adding new site handers To add support for a new site, create a file in the `sites` directory that implements the `Site` interface. Take a look at `ao3.py` for a minimal example of what you have to do. +Docker +--- + +You can build the project's Docker container like this: + +```shell +docker build . -t kemayo/leech:snapshot +``` + +The container's entrypoint runs `leech` directly and sets the current working directory to `/work`, so you can mount any directory there: + +```shell +docker run -it --rm -v ${DIR}:/work kemayo/leech:snapshot download [[URL]] +``` + Contributing ---