# 使用官方CentOS 7基础镜像 FROM centos:xnyV1.3 RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && \ sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo && \ yum clean all && \ yum makecache \ # 安装基础依赖 RUN yum -y update && \ yum -y install \ openssl-devel \ bzip2-devel \ libffi-devel \ zlib-devel \ sqlite-devel \ readline-devel \ xz-devel \ tk-devel \ libnsl2-devel \ libtirpc-devel \ gcc-c++ \ && yum clean all # 安装Python 3.12 RUN cd /tmp && \ wget https://mirrors.huaweicloud.com/python/3.12.0/Python-3.12.0.tgz && \ echo "51412956d86a61d1a7d227873d2b3697e1fccc16d7b3b5e2b6a8cd372d74edb9 Python-3.12.0.tgz" | sha256sum -c - && \ tar xzf Python-3.12.0.tgz \ cd Python-3.12.0 && \ ./configure \ --enable-optimizations \ --with-lto=no \ --enable-shared \ --with-system-expat \ --with-system-ffi \ --with-ensurepip=yes \ --enable-ipv6 && \ make -j$(($(nproc)-1)) altinstall && \ ldconfig && \ ln -s /usr/local/bin/python3.12 /usr/local/bin/python3 && \ ln -s /usr/local/bin/pip3.12 /usr/local/bin/pip3 # 安装MongoDB RUN echo -e "[mongodb-org-6.0]\nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/6.0/x86_64/\ngpgcheck=1\nenabled=1\ngpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc" > /etc/yum.repos.d/mongodb-org-6.0.repo && \ yum -y install mongodb-org && \ mkdir -p /data/db && \ chown -R mongod:mongod /data/db \ WORKDIR /home/app # 部署应用程序 COPY ./app/ . # 安装Python依赖 RUN pip3 install --no-cache-dir -r /app/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # 配置容器启动 EXPOSE 27017 CMD ["sh", "-c", "mongod --fork --logpath /var/log/mongodb.log"]