diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5e280c2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,34 @@ +FROM alpine:latest + +ENV NODE_ENV production + +# Debug +RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories + +RUN apk --no-cache add nodejs npm nginx task + +COPY ./frontend /src/frontend +COPY ./backend /src/backend +COPY ./nginx/nginx.conf /etc/nginx/conf.d/default.conf +COPY ./docker/start.sh /start.sh + +# Debug +RUN npm config set registry https://registry.npm.taobao.org + +# Frontend +RUN cd /src/frontend && npm install \ + && npm run build && npm run export \ + && cp -r /src/frontend/dist /static \ + && rm -r /src/frontend + +# Backend +RUN cd /src/backend && npm install \ + && npm run build \ + && rm -r /src/backend/src + +EXPOSE 80 + +# Taskwarrior data volumn +VOLUME [ "/.task", "/.taskrc" ] + +CMD ["/start.sh"] diff --git a/docker/start.sh b/docker/start.sh new file mode 100755 index 0000000..d7379e0 --- /dev/null +++ b/docker/start.sh @@ -0,0 +1,5 @@ +#!/bin/sh +mkdir -p /run/nginx +cd /src/backend +npm start & +nginx -g 'daemon off;'