Site / Dockerfile
bethanie05's picture
Remove Mongod version check line
eb1df8e verified
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"]