Dockerfile 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. FROM node:18.8.0-alpine3.16 as frontend
  2. WORKDIR /app
  3. COPY ./frontend .
  4. RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories \
  5. && cd /app/frontend && npm i -g pnpm --registry=https://registry.npmmirror.com \
  6. && pnpm i && pnpm run build
  7. FROM python:3.11-slim
  8. WORKDIR /app
  9. ADD ./backend .
  10. COPY ./deploy/entrypoint.sh .
  11. RUN sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list.d/debian.sources \
  12. && sed -i s@/security.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list.d/debian.sources
  13. RUN apt-get update \
  14. && apt-get install -y --no-install-recommends gcc python3-dev bash nginx vim curl procps net-tools\
  15. && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  16. RUN pip install poetry -i https://pypi.tuna.tsinghua.edu.cn/simple\
  17. && poetry config virtualenvs.create false \
  18. && poetry install
  19. COPY --from=frontend /app/frontend/dist /app/frontend/dist
  20. ADD /deploy/web.conf /etc/nginx/sites-available/web.conf
  21. RUN rm -f /etc/nginx/sites-enabled/default \
  22. && ln -s /etc/nginx/sites-available/web.conf /etc/nginx/sites-enabled/
  23. ENV LANG=zh_CN.UTF-8
  24. EXPOSE 80
  25. ENTRYPOINT [ "sh", "entrypoint.sh" ]