front-matter / rogue-scholar-api

REST API for the Rogue Scholar science blog archive
https://api.rogue-scholar.org
MIT License
2 stars 1 forks source link

Install Pandoc in Rogue Scholar API #11

Closed mfenner closed 9 months ago

mfenner commented 10 months ago

Generate a Docker image that has Pandoc installed.

castedo commented 9 months ago

In case you're curious ... here's how I'm building the OCI image with pandoc that I use:

https://gitlab.com/perm.pub/baseprinter/-/tree/main/oci_images

It's perhaps fancier than it needs to be in some ways (with caching and multiple layers) and too primitive in others (I manually run it). The detail you might find interesting is how I use buildah rather than docker. With buildah one has a lot more control over how packages get cached when building the image and how efficiently the image layers get stored. These images were getting bloated way past 1GB but now with buildah and these tricks, the images are much smaller and faster to update/upload/download.

mfenner commented 9 months ago

Thanks for sharing what you do. I have resolved this issue for the time being. I implemented a workflow that works for me in December. These docker images run on the fly.io service and I have a written a Dockerfile that works: https://github.com/front-matter/rogue-scholar-api/blob/main/Dockerfile

Future iterations will use multistage build and generate smaller images and I will look into what you are doing. My base image is the official Python 3.11 slim image using Debian Bookworm.

castedo commented 9 months ago

It's great to learn what tech you have chosen to use, thx for sharing. Quart and fly.io look like great upgrades from Flask and AWS I started using years ago. Definitely interested in learning from your experience.

I am particularly impressed from the fly.io homepage which states that Antarctica is a region that is coming soon! :rofl:

mfenner commented 9 months ago

Thanks Castedo. My experience with fly.io so far has been very positive. Other services I heavily rely on use heavily are Supabase (Postgres) and Typesense (Search Index).

What is missing is good documentation how to install the tech stack from scratch, mainly database migrations. And a data dump of all the data.