diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2b297ee --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM docker.io/alpine:3.8 + +ENV UID=1338 \ + GID=1338 + +COPY . /opt/maubot +WORKDIR /opt/maubot +RUN apk add --no-cache \ + python3-dev \ + build-base \ + py3-aiohttp \ + py3-sqlalchemy \ + py3-attrs \ + ca-certificates \ + su-exec \ + && pip3 install -r requirements.txt -r optional-requirements.txt + +VOLUME /data + +CMD ["/opt/mautrix-telegram/docker-run.sh"] diff --git a/docker-run.sh b/docker-run.sh new file mode 100644 index 0000000..f4bded7 --- /dev/null +++ b/docker-run.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +# Define functions. +function fixperms { + chown -R $UID:$GID /data /opt/maubot +} + +cd /opt/maubot + +# Replace database path in config. +sed -i "s#sqlite:///maubot.db#sqlite:////data/maubot.db#" /data/config.yaml +sed -i "s#- ./plugins#- /data/plugins#" /data/config.yaml + +# Check that database is in the right state +alembic -x config=/data/config.yaml upgrade head + +if [ ! -f /data/config.yaml ]; then + cp example-config.yaml /data/config.yaml + echo "Didn't find a config file." + echo "Copied default config file to /data/config.yaml" + echo "Modify that config file to your liking." + echo "Start the container again after that to generate the registration file." + fixperms + exit +fi + +fixperms +exec su-exec $UID:$GID python3 -m maubot -c /data/config.yaml