Spaces:
Build error
Build error
| FROM python:3.12.12 | |
| RUN useradd -m -u 1000 user | |
| WORKDIR /app | |
| COPY ./requirements.txt requirements.txt | |
| RUN pip install --no-cache-dir --upgrade -r requirements.txt | |
| RUN apt-get update && apt-get install -y \ | |
| curl \ | |
| ca-certificates \ | |
| cron \ | |
| tar \ | |
| gzip \ | |
| procps \ | |
| && rm -rf /var/lib/apt/lists/* | |
| ENV GLIBC_TUNABLES=glibc.pthread.rseq=0 | |
| ARG MONGO_VERSION=8.0.19 | |
| ARG MONGO_TARBALL_URL=https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2404-${MONGO_VERSION}.tgz | |
| RUN curl -fsSL "${MONGO_TARBALL_URL}" -o /tmp/mongodb.tgz \ | |
| && tar -xzf /tmp/mongodb.tgz -C /opt \ | |
| && ln -s /opt/mongodb-linux-x86_64-ubuntu2404-${MONGO_VERSION} /opt/mongodb \ | |
| && ln -s /opt/mongodb/bin/mongod /usr/local/bin/mongod \ | |
| && ln -s /opt/mongodb/bin/mongos /usr/local/bin/mongos \ | |
| && rm /tmp/mongodb.tgz | |
| # Check that MongoDB is installed & works properly | |
| RUN mkdir -p /tmp/mongo-data-build /tmp/mongo-logs-build /tmp/mongo-run-build \ | |
| && mongod --bind_ip 127.0.0.1 \ | |
| --dbpath /tmp/mongo-data-build \ | |
| --logpath /tmp/mongo-logs-build/mongod.log \ | |
| --pidfilepath /tmp/mongo-run-build/mongod.pid \ | |
| --fork \ | |
| && sleep 3 \ | |
| && python -c "from pymongo import MongoClient; c = MongoClient('mongodb://127.0.0.1:27017/', serverSelectionTimeoutMS=5000); print(c.admin.command('ping'))" \ | |
| && kill "$(cat /tmp/mongo-run-build/mongod.pid)" \ | |
| && sleep 2 | |
| COPY --chown=user . /app | |
| USER user | |
| ENTRYPOINT ["/bin/bash", "-lc", "\ | |
| mkdir -p /tmp/mongo-data /tmp/mongo-logs /tmp/mongo-run && \ | |
| rm -f /tmp/mongo-run/mongod.pid && \ | |
| mongod --bind_ip 127.0.0.1 \ | |
| --dbpath /tmp/mongo-data \ | |
| --logpath /tmp/mongo-logs/mongod.log \ | |
| --pidfilepath /tmp/mongo-run/mongod.pid \ | |
| --logappend \ | |
| --fork && \ | |
| sleep 3 && \ | |
| python -c \"from pymongo import MongoClient; c = MongoClient('mongodb://127.0.0.1:27017/', serverSelectionTimeoutMS=5000); print(c.admin.command('ping'))\" && \ | |
| exec \"$@\"", "--"] | |
| CMD ["gunicorn", "-k", "geventwebsocket.gunicorn.workers.GeventWebSocketWorker", "-w", "1", "--bind", "0.0.0.0:7860", "chat_application.main:app"] | |