Add docker configs.

dev
bluezealot 1 year ago
parent b9f986bd5a
commit 7e2fa43b81

@ -0,0 +1,59 @@
FROM ubuntu:jammy-20230126
ARG uid=1001
ARG gid=1001
ARG basedir=workspace
ENV VERSION ce_v1.0.0
ARG DEBIAN_FRONTEND=noninteractive
EXPOSE 8880
# install wget
# install libreoffice
# install mupdf
# install supervisor
# install all needed tools
RUN apt-get update \
&& apt-get install -y wget \
&& apt-get install -y python3 \
&& apt-get install -y libreoffice \
&& apt-get install -y mupdf mupdf-tools \
&& apt-get install -y supervisor \
&& apt-get install -y libopengl0 \
&& apt-get install -y xz-utils \
&& apt-get install -y unzip \
&& rm -rf /var/lib/apt/lists/*
RUN apt-get update \
&& apt-get install -y language-pack-zh-hans \
&& apt-get install -y language-pack-ja \
&& apt-get install -y chinese* \
&& apt-get install -y libreoffice-l10n-zh-cn libreoffice-help-zh-cn \
&& apt-get install -y libreoffice-help-ja \
&& rm -rf /var/lib/apt/lists/*
# install calibre
RUN wget -nv -O- https://download.calibre-ebook.com/linux-installer.py | python3 -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()"
# Add non root user
RUN addgroup --gid $gid --system moredoc\
&& adduser --uid $uid --disabled-password --system --gid $gid moredoc
# change to moredoc user
USER moredoc
WORKDIR /home/moredoc
# Get and Unpack Tomcat
RUN wget https://github.com/mnt-ltd/moredoc/releases/download/v1.0.0/moredoc_${VERSION}_linux_amd64.zip -O ~/moredoc_${VERSION}_linux_amd64.zip
RUN cd ~/ && \
mkdir $basedir && \
unzip -n ~/moredoc_${VERSION}_linux_amd64.zip -d $basedir/
COPY entrypoint.sh entrypoint.sh
USER root
RUN chmod 777 entrypoint.sh
RUN chmod -R 777 /home/moredoc
USER moredoc
RUN mkdir $basedir/cache
RUN mkdir $basedir/documents
RUN mkdir $basedir/uploads
VOLUME $basedir/cache
VOLUME $basedir/documents
VOLUME $basedir/uploads
ENTRYPOINT ["./entrypoint.sh"]
ENV MYSQL_CONNECTION=dummy
CMD $MYSQL_CONNECTION

@ -0,0 +1,36 @@
#!/bin/bash
log() {
local type="$1"; shift
printf '%s [%s] [Entrypoint]: %s\n' "$(date --rfc-3339=seconds)" "$type" "$*"
}
moredoc_note() {
log Note "$@"
}
_main() {
cd ~
moredoc_note "Current path is:"
pwd
moredoc_note "Current folder contains:"
ls
if [ -f app.toml ]
then
moredoc_note "Start server"
exec ./workspace/moredoc serve
else
moredoc_note "Init server"
ESCAPED_ORIGIN=$(printf '%s\n' "root:root@tcp(localhost:3306)/moredoc?charset=utf8mb4&loc=Local&parseTime=true" | sed -e 's/[\/&]/\\&/g')
ESCAPED_REPLACE=$(printf '%s\n' "${MYSQL_CONNECTION}" | sed -e 's/[\/&]/\\&/g')
sed "s/$ESCAPED_ORIGIN/$ESCAPED_REPLACE/g" ./workspace/app.example.toml > ./workspace/app.toml
ls ./workspace
moredoc_note "Init DB"
cd workspace/
./moredoc syncdb
moredoc_note "Start server"
exec ./moredoc serve
fi
}
_main "$@"
Loading…
Cancel
Save