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
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"~$TERMINALOGUE_ADMIN_EMAIL~ siteconfig.json \n\
|
|
sed -i s~"http:\/\/localhost\/"~$TERMINALOGUE_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.TERMINALOGUE_ADMIN_PASSWORD\;"/ init.js && \
|
|
sed -i -E s/"var email=.*$"/"var email=process.env.TERMINALOGUE_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
|