Spaces:
Runtime error
Runtime error
set -e | |
echo "Creating MongoDB configuration..." | |
cat > /tmp/mongod.conf << EOF | |
storage: | |
dbPath: /data/db | |
systemLog: | |
destination: file | |
path: /var/log/mongodb.log | |
logAppend: true | |
net: | |
bindIp: 127.0.0.1 | |
port: 27017 | |
replication: | |
replSetName: rs01 | |
EOF | |
# Ensure proper permissions | |
echo "Setting up permissions..." | |
chown -R mongodb:mongodb /data/db /var/log/mongodb.log | |
# Start MongoDB | |
echo "Starting MongoDB..." | |
mongod --config /tmp/mongod.conf & | |
# Wait for MongoDB to be ready | |
echo "Waiting for MongoDB to start..." | |
max_attempts=30 | |
attempt=1 | |
while ! mongosh --quiet --eval "db.version()" > /dev/null 2>&1; do | |
if [ $attempt -gt $max_attempts ]; then | |
echo "MongoDB failed to start. Showing logs:" | |
cat /var/log/mongodb.log | |
exit 1 | |
fi | |
echo "Attempt $attempt of $max_attempts: MongoDB not ready yet..." | |
sleep 2 | |
attempt=$((attempt + 1)) | |
done | |
echo "MongoDB started successfully" | |
# Initialize replica set | |
echo "Initializing replica set..." | |
mongosh --eval 'rs.initiate({_id: "rs01", members: [{_id: 0, host: "localhost:27017"}]})' || { | |
echo "Failed to initialize replica set" | |
exit 1 | |
} | |
# Wait for replica set to initialize | |
echo "Waiting for replica set to be ready..." | |
attempt=1 | |
while ! mongosh --eval "rs.status()" | grep -q '"ok" : 1'; do | |
if [ $attempt -gt $max_attempts ]; then | |
echo "Replica set failed to initialize after $max_attempts attempts" | |
exit 1 | |
fi | |
echo "Attempt $attempt of $max_attempts: Replica set not ready yet..." | |
sleep 2 | |
attempt=$((attempt + 1)) | |
done | |
echo "Replica set initialized successfully" | |
# Start Rocket.Chat | |
echo "Starting Rocket.Chat..." | |
cd /opt/Rocket.Chat | |
exec node main.js |