45 lines
1.6 KiB
Docker
45 lines
1.6 KiB
Docker
FROM python:3.11
|
||
|
||
# 兼容新老 debian/ubuntu 换源
|
||
RUN (sed -i 's@http://deb.debian.org@http://mirrors.aliyun.com@g' /etc/apt/sources.list 2>/dev/null || true) && \
|
||
(sed -i 's@http://security.debian.org@http://mirrors.aliyun.com@g' /etc/apt/sources.list 2>/dev/null || true) && \
|
||
find /etc/apt/sources.list.d/ -name "*.list" -exec sed -i 's@http://deb.debian.org@http://mirrors.aliyun.com@g' {} \; && \
|
||
find /etc/apt/sources.list.d/ -name "*.list" -exec sed -i 's@http://security.debian.org@http://mirrors.aliyun.com@g' {} \;
|
||
|
||
# 安装 Node.js 和 supervisord
|
||
RUN apt-get update && \
|
||
apt-get install -y curl supervisor && \
|
||
curl -fsSL https://deb.nodesource.com/setup_21.x | bash - && \
|
||
apt-get install -y nodejs && \
|
||
apt-get clean
|
||
|
||
# 设置 pip 国内镜像(清华)
|
||
RUN mkdir -p /root/.pip && \
|
||
echo "[global]\nindex-url = https://pypi.tuna.tsinghua.edu.cn/simple\ntrusted-host = pypi.tuna.tsinghua.edu.cn" > /root/.pip/pip.conf
|
||
|
||
# 设置工作目录
|
||
WORKDIR /app
|
||
|
||
# 复制前端代码并安装依赖、构建
|
||
COPY platform/ ./platform/
|
||
WORKDIR /app/platform
|
||
# 构建前先删除 dist,确保不会用到本地遗留产物
|
||
RUN rm -rf dist && npm install && npm run build
|
||
RUN ls -l /app/platform
|
||
|
||
# 安装 http-server
|
||
RUN npm install -g http-server
|
||
|
||
# 复制后端代码并安装依赖
|
||
WORKDIR /app/back
|
||
COPY back/requirements.txt .
|
||
RUN pip install -r requirements.txt
|
||
COPY back/ .
|
||
RUN ls -l /app/back
|
||
|
||
# supervisor 配置
|
||
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||
|
||
WORKDIR /app
|
||
|
||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"] |