summary refs log tree commit diff
path: root/Dockerfile
diff options
context:
space:
mode:
authorMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2022-04-11 00:25:53 +1000
committerMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2022-04-11 00:26:33 +1000
commitcf9a92383806561ed311634c41a5a1376304d2de (patch)
tree076c5db27a6c51ae7959c2b9dd4d5dc220981d28 /Dockerfile
parentMerge branch 'master' into fix/claim_accounts (diff)
parentUpdate Guild.ts (diff)
downloadserver-ts-cf9a92383806561ed311634c41a5a1376304d2de.tar.xz
Merge branch 'master' into fix/claim_accounts
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile45
1 files changed, 39 insertions, 6 deletions
diff --git a/Dockerfile b/Dockerfile

index d4b423ee..3c8a0b31 100644 --- a/Dockerfile +++ b/Dockerfile
@@ -1,7 +1,40 @@ -FROM node:14 -WORKDIR /usr/src/fosscord-server/ -COPY . . -WORKDIR /usr/src/fosscord-server/bundle +FROM node:alpine + +# env vars +ENV WORK_DIR="/srv/fosscord-server" +ENV DEV_MODE=0 +ENV HTTP_PORT=3001 +ENV WS_PORT=3002 +ENV CDN_PORT=3003 +ENV RTC_PORT=3004 +ENV ADMIN_PORT=3005 + +# exposed ports (only for reference, see https://docs.docker.com/engine/reference/builder/#expose) +EXPOSE ${HTTP_PORT}/tcp ${WS_PORT}/tcp ${CDN_PORT}/tcp ${RTC_PORT}/tcp ${ADMIN_PORT}/tcp + +# install required apps +RUN apk add --no-cache --update git python2 py-pip make build-base + +# optionl: packages for debugging/development +RUN apk add --no-cache sqlite + +# download fosscord-server +WORKDIR $WORK_DIR/src +RUN git clone https://github.com/fosscord/fosscord-server.git . + +# setup and run +WORKDIR $WORK_DIR/src/bundle RUN npm run setup -EXPOSE 3001 -CMD [ "npm", "run", "start:bundle" ] +RUN npm install @yukikaze-bot/erlpack +# RUN npm install mysql --save + +# create update script +RUN printf '#!/bin/sh\n\ngit -C $WORK_DIR/src/ checkout master\ngit -C $WORK_DIR/src/ reset --hard HEAD\ngit -C $WORK_DIR/src/ pull\ncd $WORK_DIR/src/bundle/\nnpm run setup\n' > $WORK_DIR/update.sh +RUN chmod +x $WORK_DIR/update.sh + +# configure entrypoint file +RUN printf '#!/bin/sh\n\nDEV_MODE=${DEV_MODE:-0}\n\nif [ "$DEV_MODE" -eq 1 ]; then\n tail -f /dev/null\nelse\n cd $WORK_DIR/src/bundle/\n npm run start:bundle\nfi\n' > $WORK_DIR/entrypoint.sh +RUN chmod +x $WORK_DIR/entrypoint.sh + +WORKDIR $WORK_DIR +ENTRYPOINT ["./entrypoint.sh"]