40 lines
1.1 KiB
Docker
40 lines
1.1 KiB
Docker
FROM node:lts AS runtime
|
|
WORKDIR /app
|
|
|
|
################### TODO ###################
|
|
# - Refactor this Dockerfile into a compose.yml
|
|
# - Add another service on the same network running an SMTP server such
|
|
# as msmtpd or Postfix
|
|
# - Configure the SMTP server to send emails from me@joeac.net via Zoho
|
|
# - Configure the website to use the SMTP server to send emails
|
|
# - Test
|
|
# - Push
|
|
# - Test on RPi
|
|
# - Consider: now you're running an SMTP server anyway, can you send it
|
|
# from your very own no-reply email address?
|
|
############################################
|
|
|
|
COPY package.json .
|
|
COPY website/db website/astro.config.mjs website/
|
|
ARG DB_URL=file:/app/db.sqlite
|
|
ENV ASTRO_DB_REMOTE_URL=$DB_URL
|
|
RUN mkdir -p "$(dirname "$(echo "$ASTRO_DB_REMOTE_URL" | cut -d':' -f 2)")"
|
|
RUN npm run astro db push
|
|
|
|
COPY ./website ./website
|
|
RUN npm install
|
|
RUN npm run build
|
|
|
|
ARG MAX_DAILY_EMAILS="100"
|
|
ARG SENDMAIL_BIN="/usr/sbin/sendmail"
|
|
|
|
ENV HOST=0.0.0.0
|
|
ENV PORT=4321
|
|
|
|
EXPOSE 4321
|
|
CMD [ \
|
|
"MAX_DAILY_EMAILS=$MAX_DAILY_EMAILS", \
|
|
"SENDMAIL_BIN=$SENDMAIL_BIN", \
|
|
"node", \
|
|
"./website/dist/server/entry.mjs"]
|