Quick script to change Mastodon Docker deployment character limits

Howdy folks!... #mastodon #docker #bash

https://kbin.social/m/selfhosted@lemmy.world/t/149285

Quick script to change Mastodon Docker deployment character limits - selfhosted - kbin.social

Howdy folks!...

s/500/…/g

This is a bit overbroad, as it replaces any “500” in those files. It works now, as this is probably only occurrence is the limit you want to tweak, but it’s a crude approach that may inadvertently break at any moment.

docker exec

Those changes are ephemeral and won’t survive if container is re-created for any reason. I would rather recommend building your own custom image. Start by making a patch file:

docker run -it --rm -user root <mastodon image> bash cp -r /opt/mastodon /opt/mastodon.vanilla sed <your-updates-here> # or you can run vi or nano or any other editor diff -urN /opt/mastodon.vanilla /opt/mastodon exit

Take diff’s output, save it to fix-limits.patch in a new empty directory, then write a brief Dockerfile next to it, that goes like this:

FROM <base-mastodon-image> COPY fix-limits.patch ./ RUN patch -p2 fix-limits.patch

And finally run docker build -t my-mastodon . and use my-mastodon as a replacement image. This will ensure your changes will persist, plus you’ll have a proper patch file that you can use with any version (point is, it will warn you if something would change in a way that the patch would no longer apply cleanly).

I’m writing this on a phone, from scratch, without any testing, so you may need to tweak things a little bit. E.g. I’m not sure what’s the WORKDIR in the base image - just assuming its /opt/mastodon (which it probably is), but you may need to edit the COPY command’s second argument and/or -p parameter to patch.

Oh I know my workaround is probably the worst possible correct answer for how to do this. Thanks for that, I'll give it a shot!
It’s OK. I do hacks like this all the time - no shame in this. However, when sharing a recipe with others it’s best to promote better practices :)