Piyusharanjan Pradhan commited on
Commit
392073e
·
1 Parent(s): 31ab0c0

backup scrip

Browse files
Files changed (2) hide show
  1. Dockerfile +6 -2
  2. backup.sh +81 -0
Dockerfile CHANGED
@@ -64,9 +64,13 @@ RUN echo "bind-addr: 0.0.0.0:7860" > /home/coder/.config/code-server/config.yaml
64
  echo "password: ${PASSWORD}" >> /home/coder/.config/code-server/config.yaml && \
65
  echo "cert: false" >> /home/coder/.config/code-server/config.yaml
66
 
67
- # Copy startup script
68
  COPY --chown=coder:coder startup.sh /home/coder/startup.sh
69
- RUN chmod +x /home/coder/startup.sh
 
 
 
 
70
 
71
  # Start code-server with persistence
72
  CMD ["/home/coder/startup.sh"]
 
64
  echo "password: ${PASSWORD}" >> /home/coder/.config/code-server/config.yaml && \
65
  echo "cert: false" >> /home/coder/.config/code-server/config.yaml
66
 
67
+ # Copy startup and backup scripts
68
  COPY --chown=coder:coder startup.sh /home/coder/startup.sh
69
+ COPY --chown=coder:coder backup.sh /home/coder/backup.sh
70
+ RUN chmod +x /home/coder/startup.sh /home/coder/backup.sh
71
+
72
+ # Create symlink for easy access
73
+ RUN sudo ln -s /home/coder/backup.sh /usr/local/bin/backup
74
 
75
  # Start code-server with persistence
76
  CMD ["/home/coder/startup.sh"]
backup.sh ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ echo "=== Manual Backup Script ==="
4
+
5
+ # Check if HF_TOKEN and HF_DATASET are set
6
+ if [ -z "$HF_TOKEN" ] || [ -z "$HF_DATASET" ]; then
7
+ echo "Error: HF_TOKEN or HF_DATASET not set."
8
+ echo "Please set these environment variables to use backup."
9
+ exit 1
10
+ fi
11
+
12
+ BACKUP_DIR="/tmp/hf_backup"
13
+ mkdir -p "$BACKUP_DIR"
14
+
15
+ echo "Creating backup archive..."
16
+ cd /home/coder
17
+
18
+ # Create backup archive
19
+ tar -czf "$BACKUP_DIR/backup.tar.gz" \
20
+ --exclude='*.log' \
21
+ --exclude='*.sock' \
22
+ --exclude='CachedData' \
23
+ --exclude='Cache' \
24
+ --exclude='GPUCache' \
25
+ .config/code-server \
26
+ .local/share/code-server \
27
+ workspace 2>/dev/null
28
+
29
+ if [ $? -eq 0 ]; then
30
+ echo "Archive created successfully!"
31
+
32
+ # Get archive size
33
+ SIZE=$(du -h "$BACKUP_DIR/backup.tar.gz" | cut -f1)
34
+ echo "Archive size: $SIZE"
35
+
36
+ # Upload to HF dataset using Python
37
+ echo "Uploading to Hugging Face dataset: $HF_DATASET"
38
+
39
+ python3 << 'PYTHON_SCRIPT'
40
+ import os
41
+ from huggingface_hub import HfApi
42
+ from datetime import datetime
43
+
44
+ try:
45
+ api = HfApi()
46
+ backup_file = "/tmp/hf_backup/backup.tar.gz"
47
+
48
+ # Create repo if it doesn't exist
49
+ api.create_repo(
50
+ repo_id=os.environ["HF_DATASET"],
51
+ repo_type="dataset",
52
+ private=True,
53
+ exist_ok=True
54
+ )
55
+
56
+ # Upload backup file
57
+ api.upload_file(
58
+ path_or_fileobj=backup_file,
59
+ path_in_repo="backup.tar.gz",
60
+ repo_id=os.environ["HF_DATASET"],
61
+ repo_type="dataset"
62
+ )
63
+
64
+ timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
65
+ print(f"✓ Backup uploaded successfully at {timestamp}!")
66
+
67
+ except Exception as e:
68
+ print(f"✗ Upload failed: {e}")
69
+ exit(1)
70
+ PYTHON_SCRIPT
71
+
72
+ if [ $? -eq 0 ]; then
73
+ echo "=== Backup Complete ==="
74
+ else
75
+ echo "=== Backup Failed ==="
76
+ exit 1
77
+ fi
78
+ else
79
+ echo "Failed to create backup archive"
80
+ exit 1
81
+ fi