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