dockerfile: initialize

This commit is contained in:
Sumner Evans 2022-03-31 13:41:34 -06:00
parent c22c71a831
commit 3540f8a5ca
No known key found for this signature in database
GPG key ID: 8904527AB50022FD
2 changed files with 57 additions and 0 deletions

21
Dockerfile Normal file
View file

@ -0,0 +1,21 @@
FROM golang:1-alpine3.15 AS builder
RUN apk add --no-cache git ca-certificates build-base su-exec olm-dev
COPY . /build
WORKDIR /build
RUN go build -o /usr/bin/mautrix-discord
FROM alpine:3.15
ENV UID=1337 \
GID=1337
RUN apk add --no-cache ffmpeg su-exec ca-certificates olm bash jq yq curl
COPY --from=builder /usr/bin/mautrix-discord /usr/bin/mautrix-discord
COPY --from=builder /build/example-config.yaml /opt/mautrix-discord/example-config.yaml
COPY --from=builder /build/docker-run.sh /docker-run.sh
VOLUME /data
CMD ["/docker-run.sh"]

36
docker-run.sh Executable file
View file

@ -0,0 +1,36 @@
#!/bin/sh
if [[ -z "$GID" ]]; then
GID="$UID"
fi
# Define functions.
function fixperms {
chown -R $UID:$GID /data
# /opt/mautrix-discord is read-only, so disable file logging if it's pointing there.
if [[ "$(yq e '.logging.directory' /data/config.yaml)" == "./logs" ]]; then
yq -I4 e -i '.logging.file_name_format = ""' /data/config.yaml
fi
}
if [[ ! -f /data/config.yaml ]]; then
cp /opt/mautrix-discord/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."
exit
fi
if [[ ! -f /data/registration.yaml ]]; then
/usr/bin/mautrix-discord -g -c /data/config.yaml -r /data/registration.yaml
echo "Didn't find a registration file."
echo "Generated one for you."
echo "See https://docs.mau.fi/bridges/general/registering-appservices.html on how to use it."
exit
fi
cd /data
fixperms
exec su-exec $UID:$GID /usr/bin/mautrix-discord