nxdev-org commited on
Commit
65f1e70
·
1 Parent(s): 632c0d2

update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +59 -30
Dockerfile CHANGED
@@ -1,6 +1,6 @@
1
  # HuggingFace Spaces Dockerfile for Overleaf with Japanese LaTeX
2
  #
3
- # FIXED: MongoDB not found - install it first!
4
  #
5
  # Features:
6
  # - Full TeX Live 2025 with Japanese support
@@ -27,7 +27,7 @@ RUN wget -qO - https://www.mongodb.org/static/pgp/server-8.0.asc | apt-key add -
27
  && rm -rf /var/lib/apt/lists/*
28
 
29
  # ============================================
30
- # STEP 2: CREATE DIRECTORIES
31
  # ============================================
32
  RUN mkdir -p /data/{mongo,redis,overleaf,git-bridge} \
33
  /var/log/{mongodb,redis} \
@@ -51,39 +51,68 @@ RUN cat > /etc/my_init.d/00_start_services.sh << 'EOFSCRIPT'
51
  #!/bin/bash
52
  set -e
53
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  echo "=== STARTING MONGODB ==="
55
- if ! pgrep -x mongod > /dev/null 2>&1; then
56
- mongod --dbpath /data/mongo \
57
- --bind_ip 127.0.0.1 \
58
- --replSet overleaf \
59
- --fork \
60
- --logpath /var/log/mongodb/mongodb.log \
61
- --port 27017 \
62
- --quiet
63
-
64
- sleep 10
65
-
66
- echo "=== INITIATING REPLICA SET ==="
67
- mongosh --quiet --eval "
68
- try {
69
- rs.initiate({_id: 'overleaf', members: [{_id: 0, host: '127.0.0.1:27017'}]});
70
- print('Replica set initiated');
71
- } catch(e) {
72
- print('Replica set may already exist: ' + e);
73
- }
74
- " 2>&1 || true
 
 
 
 
 
75
  fi
76
 
 
 
 
 
 
 
 
 
 
 
77
  echo "=== STARTING REDIS ==="
78
- if ! pgrep -x redis-server > /dev/null 2>&1; then
79
- redis-server --daemonize yes \
80
- --dir /data/redis \
81
- --port 6379 \
82
- --bind 127.0.0.1 \
83
- --logfile /var/log/redis/redis.log 2>/dev/null || true
84
- fi
85
 
86
- echo "=== SERVICES STARTED ==="
87
  EOFSCRIPT
88
 
89
  RUN chmod +x /etc/my_init.d/00_start_services.sh
 
1
  # HuggingFace Spaces Dockerfile for Overleaf with Japanese LaTeX
2
  #
3
+ # FIXED: MongoDB data directory initialization
4
  #
5
  # Features:
6
  # - Full TeX Live 2025 with Japanese support
 
27
  && rm -rf /var/lib/apt/lists/*
28
 
29
  # ============================================
30
+ # STEP 2: CREATE DIRECTORIES WITH PROPER PERMS
31
  # ============================================
32
  RUN mkdir -p /data/{mongo,redis,overleaf,git-bridge} \
33
  /var/log/{mongodb,redis} \
 
51
  #!/bin/bash
52
  set -e
53
 
54
+ echo "=== PREPARING MONGODB DATA DIRECTORY ==="
55
+ # Ensure data directory exists with proper ownership
56
+ chmod -R 777 /data/mongo
57
+ chown -R root:root /data/mongo 2>/dev/null || true
58
+ chmod 755 /data/mongo
59
+ chmod 755 /data
60
+
61
+ # Remove any stale lock files
62
+ rm -f /data/mongo/mongod.lock 2>/dev/null || true
63
+ rm -f /data/mongo/WiredTiger.lock 2>/dev/null || true
64
+
65
+ # Initialize empty data directory if needed
66
+ if [ ! -f /data/mongo/WiredTiger ]; then
67
+ echo "Initializing new MongoDB data directory..."
68
+ fi
69
+
70
  echo "=== STARTING MONGODB ==="
71
+ # Start MongoDB WITHOUT fork to see full error
72
+ mkdir -p /var/log/mongodb
73
+ chmod 777 /var/log/mongodb
74
+
75
+ # Try to start without fork for debugging
76
+ set +e
77
+ mongod --dbpath /data/mongo \
78
+ --bind_ip 127.0.0.1 \
79
+ --replSet overleaf \
80
+ --port 27017 \
81
+ --logpath /var/log/mongodb/mongodb.log \
82
+ --logAppend \
83
+ 2>&1 &
84
+
85
+ MONGOPID=$!
86
+ echo "MongoDB started with PID: $MONGOPID"
87
+
88
+ # Wait for MongoDB to start
89
+ sleep 15
90
+
91
+ # Check if MongoDB is still running
92
+ if ! kill -0 $MONGOPID 2>/dev/null; then
93
+ echo "MongoDB failed to start. Log output:"
94
+ cat /var/log/mongodb/mongodb.log 2>/dev/null || true
95
+ exit 1
96
  fi
97
 
98
+ echo "MongoDB is running, initializing replica set..."
99
+ mongosh --quiet --eval "
100
+ try {
101
+ rs.initiate({_id: 'overleaf', members: [{_id: 0, host: '127.0.0.1:27017'}]});
102
+ print('Replica set initiated');
103
+ } catch(e) {
104
+ print('Replica set may already exist: ' + e);
105
+ }
106
+ " 2>&1 || true
107
+
108
  echo "=== STARTING REDIS ==="
109
+ redis-server --daemonize yes \
110
+ --dir /data/redis \
111
+ --port 6379 \
112
+ --bind 127.0.0.1 \
113
+ --logfile /var/log/redis/redis.log 2>/dev/null || true
 
 
114
 
115
+ echo "=== ALL SERVICES STARTED ==="
116
  EOFSCRIPT
117
 
118
  RUN chmod +x /etc/my_init.d/00_start_services.sh