diff --git a/docker_env/django/Dockerfile b/docker_env/django/Dockerfile index e11bdf0..90ea534 100644 --- a/docker_env/django/Dockerfile +++ b/docker_env/django/Dockerfile @@ -1,15 +1,15 @@ -# 使用非Alpine源,兼容SQL Server安装 -FROM python:3.10-slim +# 第一阶段:构建依赖 +FROM docker.1ms.run/python:3.10-slim as builder -# 3. 安装系统依赖 (替换原来的 apk 命令) -# 注意:这里安装了构建依赖和微软驱动所需的依赖 +WORKDIR /backend + +# 安装构建依赖 RUN apt-get update && apt-get install -y \ bash \ git \ curl \ gnupg \ ca-certificates \ - # 以下为原 apk 中的开发库对应的 apt 包名 (可能需微调) libjpeg-dev \ libmariadb-dev-compat \ default-libmysqlclient-dev \ @@ -26,18 +26,26 @@ RUN apt-get update && apt-get install -y \ unixodbc-dev \ && rm -rf /var/lib/apt/lists/* -# 4. 添加微软软件源和密钥 (解决 msodbcsql17 安装问题) +# 添加微软源 RUN curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /etc/apt/trusted.gpg.d/microsoft.gpg \ && echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-focal-prod focal main" > /etc/apt/sources.list.d/mssql-release.list \ && apt-get update \ && ACCEPT_EULA=Y apt-get install -y msodbcsql17 \ && rm -rf /var/lib/apt/lists/* -WORKDIR /backend COPY ./backend/ . RUN ls ./conf/ RUN awk 'BEGIN { cmd="cp -i ./conf/env.example.py ./conf/env.py "; print "n" |cmd; }' RUN sed -i "s|DATABASE_HOST = '127.0.0.1'|DATABASE_HOST = '177.10.0.1'|g" ./conf/env.py RUN sed -i "s|REDIS_HOST = '127.0.0.1'|REDIS_HOST = '177.10.0.1'|g" ./conf/env.py -RUN python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ -r requirements.txt +RUN pip install --no-cache-dir -i https://docker.1ms.run/simple/ -r requirements.txt + +# 第二阶段:运行时镜像 +FROM docker.1ms.run/python:3.10-slim + +COPY --from=builder /usr/local/lib/python3.10/site-packages /usr/local/lib/python3.10/site-packages +COPY --from=builder /usr/local/bin /usr/local/bin +COPY --from=builder /backend /backend + +WORKDIR /backend CMD ["sh","docker_start.sh"] diff --git a/docker_env/web/Dockerfile b/docker_env/web/Dockerfile index a10f353..cdb646d 100644 --- a/docker_env/web/Dockerfile +++ b/docker_env/web/Dockerfile @@ -1,9 +1,15 @@ -FROM node:20-alpine +# 第一阶段:构建 +FROM docker.1ms.run/node:20-alpine as builder + WORKDIR /web/ COPY web/. . + +# 使用 npmmirror 加速 yarn install RUN yarn install --registry=https://registry.npmmirror.com RUN yarn build -FROM nginx:alpine +# 第二阶段:Nginx 运行时 +FROM docker.1ms.run/nginx:alpine + COPY ./docker_env/nginx/my.conf /etc/nginx/conf.d/my.conf -COPY --from=0 /web/dist /usr/share/nginx/html +COPY --from=builder /web/dist /usr/share/nginx/html