You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.2 KiB
Docker

FROM node:21.6.2-bookworm-slim
RUN apt update && \
apt install -y git sqlite3 && \
apt clean && \
git clone https://github.com/gaois/terminologue /opt/terminologue
WORKDIR /opt/terminologue/website
RUN echo '#!/bin/bash \n\
if [ ! -f ./init_done ]; then \n\
echo "Preparing configuration..." \n\
touch ./init_done \n\
sed -i s~"root@localhost"~$TERMINOLOGUE_ADMIN_EMAIL~ siteconfig.json \n\
sed -i s~"http:\/\/localhost\/"~$TERMINOLOGUE_URL~ siteconfig.json \n\
sed -i s~"..\/data\/"~"\/data\/"~ siteconfig.json \n\
fi \n\
if [ ! -f /data/terminologue.sqlite ]; then \n\
mkdir -p /data \n\
mv ../data/* /data/ \n\
echo "Adding new user..." \n\
node init.js \n\
fi \n\
echo "Starting application..." \n\
node terminologue.js \n' > ./run.sh
RUN mv ../data/terminologue.template.sqlite ../data/terminologue.sqlite && \
mv siteconfig.template.json siteconfig.json && \
sed -i -E s/"var password=.*$"/"var password=process.env.TERMINOLOGUE_ADMIN_PASSWORD\;"/ init.js && \
sed -i -E s/"var email=.*$"/"var email=process.env.TERMINOLOGUE_ADMIN_EMAIL\;"/ init.js && \
sed -i -E s/"\+\". The password is: \"\+password"/""/ init.js && \
chmod +x ./run.sh && \
npm install
EXPOSE 80/tcp
CMD ./run.sh