Spaces:
Runtime error
Runtime error
anuj
commited on
Commit
·
41bc73a
1
Parent(s):
ef798ec
batfa
Browse files- Dockerfile +16 -5
- start.sh +3 -35
Dockerfile
CHANGED
|
@@ -24,13 +24,24 @@ RUN curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
|
|
| 24 |
&& apt-get update \
|
| 25 |
&& apt-get install -y mongodb-org mongodb-mongosh
|
| 26 |
|
| 27 |
-
# Create required directories
|
| 28 |
RUN mkdir -p /data/db /opt/Rocket.Chat /var/log && \
|
| 29 |
-
touch /var/log/mongodb.log
|
|
|
|
|
|
|
| 30 |
|
| 31 |
-
#
|
| 32 |
-
RUN
|
| 33 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
|
| 35 |
# Create rocketchat user
|
| 36 |
RUN useradd -M rocketchat && \
|
|
|
|
| 24 |
&& apt-get update \
|
| 25 |
&& apt-get install -y mongodb-org mongodb-mongosh
|
| 26 |
|
| 27 |
+
# Create required directories and set permissions
|
| 28 |
RUN mkdir -p /data/db /opt/Rocket.Chat /var/log && \
|
| 29 |
+
touch /var/log/mongodb.log && \
|
| 30 |
+
chown -R mongodb:mongodb /data/db /var/log/mongodb.log && \
|
| 31 |
+
chmod 777 /data/db /var/log/mongodb.log
|
| 32 |
|
| 33 |
+
# Create MongoDB config file
|
| 34 |
+
RUN echo "storage:" > /etc/mongod.conf && \
|
| 35 |
+
echo " dbPath: /data/db" >> /etc/mongod.conf && \
|
| 36 |
+
echo "systemLog:" >> /etc/mongod.conf && \
|
| 37 |
+
echo " destination: file" >> /etc/mongod.conf && \
|
| 38 |
+
echo " path: /var/log/mongodb.log" >> /etc/mongod.conf && \
|
| 39 |
+
echo " logAppend: true" >> /etc/mongod.conf && \
|
| 40 |
+
echo "net:" >> /etc/mongod.conf && \
|
| 41 |
+
echo " bindIp: 127.0.0.1" >> /etc/mongod.conf && \
|
| 42 |
+
echo " port: 27017" >> /etc/mongod.conf && \
|
| 43 |
+
echo "replication:" >> /etc/mongod.conf && \
|
| 44 |
+
echo " replSetName: rs01" >> /etc/mongod.conf
|
| 45 |
|
| 46 |
# Create rocketchat user
|
| 47 |
RUN useradd -M rocketchat && \
|
start.sh
CHANGED
|
@@ -1,28 +1,8 @@
|
|
| 1 |
#!/bin/bash
|
| 2 |
set -e
|
| 3 |
|
| 4 |
-
echo "Creating MongoDB configuration..."
|
| 5 |
-
cat > /tmp/mongod.conf << EOF
|
| 6 |
-
storage:
|
| 7 |
-
dbPath: /data/db
|
| 8 |
-
systemLog:
|
| 9 |
-
destination: file
|
| 10 |
-
path: /var/log/mongodb.log
|
| 11 |
-
logAppend: true
|
| 12 |
-
net:
|
| 13 |
-
bindIp: 127.0.0.1
|
| 14 |
-
port: 27017
|
| 15 |
-
replication:
|
| 16 |
-
replSetName: rs01
|
| 17 |
-
EOF
|
| 18 |
-
|
| 19 |
-
# Ensure proper permissions
|
| 20 |
-
echo "Setting up permissions..."
|
| 21 |
-
chown -R mongodb:mongodb /data/db /var/log/mongodb.log
|
| 22 |
-
|
| 23 |
-
# Start MongoDB
|
| 24 |
echo "Starting MongoDB..."
|
| 25 |
-
mongod --config /
|
| 26 |
|
| 27 |
# Wait for MongoDB to be ready
|
| 28 |
echo "Waiting for MongoDB to start..."
|
|
@@ -49,20 +29,8 @@ mongosh --eval 'rs.initiate({_id: "rs01", members: [{_id: 0, host: "localhost:27
|
|
| 49 |
exit 1
|
| 50 |
}
|
| 51 |
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
attempt=1
|
| 55 |
-
while ! mongosh --eval "rs.status()" | grep -q '"ok" : 1'; do
|
| 56 |
-
if [ $attempt -gt $max_attempts ]; then
|
| 57 |
-
echo "Replica set failed to initialize after $max_attempts attempts"
|
| 58 |
-
exit 1
|
| 59 |
-
fi
|
| 60 |
-
echo "Attempt $attempt of $max_attempts: Replica set not ready yet..."
|
| 61 |
-
sleep 2
|
| 62 |
-
attempt=$((attempt + 1))
|
| 63 |
-
done
|
| 64 |
-
|
| 65 |
-
echo "Replica set initialized successfully"
|
| 66 |
|
| 67 |
# Start Rocket.Chat
|
| 68 |
echo "Starting Rocket.Chat..."
|
|
|
|
| 1 |
#!/bin/bash
|
| 2 |
set -e
|
| 3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
echo "Starting MongoDB..."
|
| 5 |
+
mongod --config /etc/mongod.conf &
|
| 6 |
|
| 7 |
# Wait for MongoDB to be ready
|
| 8 |
echo "Waiting for MongoDB to start..."
|
|
|
|
| 29 |
exit 1
|
| 30 |
}
|
| 31 |
|
| 32 |
+
echo "Waiting for replica set to initialize..."
|
| 33 |
+
sleep 5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
|
| 35 |
# Start Rocket.Chat
|
| 36 |
echo "Starting Rocket.Chat..."
|