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 |