Upload Dockerfile
Browse files- Dockerfile +47 -0
Dockerfile
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# syntax=docker/dockerfile:1.4
|
| 2 |
+
FROM debian:bookworm-slim
|
| 3 |
+
|
| 4 |
+
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 5 |
+
wget unzip jq nginx bash python3 python3-flask ca-certificates curl \
|
| 6 |
+
&& rm -rf /var/lib/apt/lists/*
|
| 7 |
+
|
| 8 |
+
RUN useradd -m -s /bin/bash -u 1000 appuser && \
|
| 9 |
+
mkdir -p /app /var/lib/nginx /var/log/nginx /run/nginx && \
|
| 10 |
+
chown -R appuser:appuser /app /var/lib/nginx /var/log/nginx /run/nginx
|
| 11 |
+
|
| 12 |
+
WORKDIR /app
|
| 13 |
+
|
| 14 |
+
RUN wget -qO /tmp/x.zip "https://github.com/XTLS/Xray-core/releases/latest/download/Xray-linux-64.zip" && \
|
| 15 |
+
unzip -qq /tmp/x.zip -d /tmp/vc && \
|
| 16 |
+
find /tmp/vc -name "xray" -type f -exec cp {} /app/svc \; && \
|
| 17 |
+
chmod +x /app/svc && \
|
| 18 |
+
rm -rf /tmp/x.zip /tmp/vc
|
| 19 |
+
|
| 20 |
+
COPY <<'EOF' /app/init.py
|
| 21 |
+
import os, base64, json
|
| 22 |
+
|
| 23 |
+
b = "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"
|
| 24 |
+
k = os.environ.get("DASH_PASS", "")
|
| 25 |
+
|
| 26 |
+
if not k:
|
| 27 |
+
print("DASH_PASS is empty. Exiting.")
|
| 28 |
+
exit(1)
|
| 29 |
+
|
| 30 |
+
try:
|
| 31 |
+
c = bytes(byte ^ ord(k[i % len(k)]) for i, byte in enumerate(base64.b64decode(b)))
|
| 32 |
+
files = json.loads(c.decode('utf-8'))
|
| 33 |
+
for path, content in files.items():
|
| 34 |
+
with open(f"/app/{path}", "w") as f:
|
| 35 |
+
f.write(content)
|
| 36 |
+
os.chmod("/app/go.sh", 0o777)
|
| 37 |
+
except Exception as e:
|
| 38 |
+
print("Decryption failed. Ensure DASH_PASS is correct.")
|
| 39 |
+
exit(1)
|
| 40 |
+
|
| 41 |
+
os.execv("/bin/bash", ["bash", "/app/go.sh"])
|
| 42 |
+
EOF
|
| 43 |
+
|
| 44 |
+
USER appuser
|
| 45 |
+
EXPOSE 7860
|
| 46 |
+
|
| 47 |
+
CMD ["python3", "/app/init.py"]
|