bethanie05 commited on
Commit
b7d0d3a
·
verified ·
1 Parent(s): 098efa4

Add MongoDB install and start commands

Browse files
Files changed (1) hide show
  1. Dockerfile +45 -1
Dockerfile CHANGED
@@ -7,11 +7,55 @@ WORKDIR /app
7
  COPY ./requirements.txt requirements.txt
8
  RUN pip install --no-cache-dir --upgrade -r requirements.txt
9
 
10
- RUN cat /etc/os-release
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
 
12
  COPY --chown=user . /app
13
 
14
  USER user
15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  CMD ["gunicorn", "-k", "geventwebsocket.gunicorn.workers.GeventWebSocketWorker", "-w", "1", "--bind", "0.0.0.0:7860", "chat_application.main:app"]
17
 
 
7
  COPY ./requirements.txt requirements.txt
8
  RUN pip install --no-cache-dir --upgrade -r requirements.txt
9
 
10
+ RUN apt-get update && apt-get install -y \
11
+ curl \
12
+ ca-certificates \
13
+ cron \
14
+ tar \
15
+ gzip \
16
+ procps \
17
+ && rm -rf /var/lib/apt/lists/*
18
+
19
+ ARG MONGO_VERSION=8.0.19
20
+ ARG MONGO_TARBALL_URL=https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2404-${MONGO_VERSION}.tgz
21
+
22
+ RUN curl -fsSL "${MONGO_TARBALL_URL}" -o /tmp/mongodb.tgz \
23
+ && tar -xzf /tmp/mongodb.tgz -C /opt \
24
+ && ln -s /opt/mongodb-linux-x86_64-ubuntu2404-${MONGO_VERSION} /opt/mongodb \
25
+ && ln -s /opt/mongodb/bin/mongod /usr/local/bin/mongod \
26
+ && ln -s /opt/mongodb/bin/mongos /usr/local/bin/mongos \
27
+ && rm /tmp/mongodb.tgz
28
+
29
+ RUN mongod --version
30
+
31
+ # Check that MongoDB is installed & works properly
32
+ RUN mkdir -p /tmp/mongo-data-build /tmp/mongo-logs-build /tmp/mongo-run-build \
33
+ && mongod --bind_ip 127.0.0.1 \
34
+ --dbpath /tmp/mongo-data-build \
35
+ --logpath /tmp/mongo-logs-build/mongod.log \
36
+ --pidfilepath /tmp/mongo-run-build/mongod.pid \
37
+ --fork \
38
+ && sleep 3 \
39
+ && python -c "from pymongo import MongoClient; c = MongoClient('mongodb://127.0.0.1:27017/', serverSelectionTimeoutMS=5000); print(c.admin.command('ping'))" \
40
+ && kill "$(cat /tmp/mongo-run-build/mongod.pid)" \
41
+ && sleep 2
42
 
43
  COPY --chown=user . /app
44
 
45
  USER user
46
 
47
+ ENTRYPOINT ["/bin/bash", "-lc", "\
48
+ mkdir -p /tmp/mongo-data /tmp/mongo-logs /tmp/mongo-run && \
49
+ rm -f /tmp/mongo-run/mongod.pid && \
50
+ mongod --bind_ip 127.0.0.1 \
51
+ --dbpath /tmp/mongo-data \
52
+ --logpath /tmp/mongo-logs/mongod.log \
53
+ --pidfilepath /tmp/mongo-run/mongod.pid \
54
+ --logappend \
55
+ --fork && \
56
+ sleep 3 && \
57
+ python -c \"from pymongo import MongoClient; c = MongoClient('mongodb://127.0.0.1:27017/', serverSelectionTimeoutMS=5000); print(c.admin.command('ping'))\" && \
58
+ exec \"$@\"", "--"]
59
+
60
  CMD ["gunicorn", "-k", "geventwebsocket.gunicorn.workers.GeventWebSocketWorker", "-w", "1", "--bind", "0.0.0.0:7860", "chat_application.main:app"]
61