|
|
FROM ubuntu:24.04 |
|
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive |
|
|
ENV PORT=7860 |
|
|
|
|
|
# Android debug keystore credentials |
|
|
ENV KEYSTORE_NAME=debug.keystore |
|
|
ENV KEYSTORE_PASS=android |
|
|
ENV ALIAS=androiddebugkey |
|
|
ENV KEY_PASS=android |
|
|
|
|
|
# Install system dependencies |
|
|
RUN apt update && apt install -y \ |
|
|
python3 python3-pip openjdk-17-jdk curl ca-certificates && \ |
|
|
update-ca-certificates && \ |
|
|
pip3 install flask |
|
|
|
|
|
WORKDIR /app |
|
|
|
|
|
# Write Python Flask web app that generates Android debug keystore |
|
|
RUN echo "\ |
|
|
from flask import Flask, render_template_string\n\ |
|
|
import os, subprocess, threading\n\ |
|
|
\n\ |
|
|
app = Flask(__name__)\n\ |
|
|
status = {'done': False, 'msg': 'π Generating Android Debug Keystore...'}\n\ |
|
|
\n\ |
|
|
def generate_debug_keystore():\n\ |
|
|
os.makedirs('/app/keystores', exist_ok=True)\n\ |
|
|
keystore_path = f'/app/keystores/{os.environ.get(\"KEYSTORE_NAME\")}'\n\ |
|
|
cmd = [\n\ |
|
|
'keytool', '-genkeypair',\n\ |
|
|
'-alias', os.environ['ALIAS'],\n\ |
|
|
'-keyalg', 'RSA',\n\ |
|
|
'-keysize', '2048',\n\ |
|
|
'-validity', '10000',\n\ |
|
|
'-storetype', 'JKS',\n\ |
|
|
'-keystore', keystore_path,\n\ |
|
|
'-storepass', os.environ['KEYSTORE_PASS'],\n\ |
|
|
'-keypass', os.environ['KEY_PASS'],\n\ |
|
|
'-dname', 'CN=Android Debug,O=Android,C=US'\n\ |
|
|
]\n\ |
|
|
try:\n\ |
|
|
subprocess.run(cmd, check=True)\n\ |
|
|
status['done'] = True\n\ |
|
|
status['msg'] = f'β
Android Debug Keystore generated: {keystore_path}'\n\ |
|
|
except subprocess.CalledProcessError as e:\n\ |
|
|
status['msg'] = f'β Failed: {e}'\n\ |
|
|
\n\ |
|
|
@app.route('/')\n\ |
|
|
def home():\n\ |
|
|
return render_template_string('''\n\ |
|
|
<html><head><title>Debug Keystore</title></head>\n\ |
|
|
<body style=\"font-family:sans-serif;text-align:center;margin-top:50px\">\n\ |
|
|
<h1>π± Android Debug Keystore Generator</h1>\n\ |
|
|
<p>Status: {{ msg }}</p>\n\ |
|
|
</body></html>\n\ |
|
|
''', msg=status['msg'])\n\ |
|
|
\n\ |
|
|
if __name__ == '__main__':\n\ |
|
|
threading.Thread(target=generate_debug_keystore, daemon=True).start()\n\ |
|
|
app.run(host='0.0.0.0', port=int(os.environ['PORT']))\n\ |
|
|
" > /app/main.py |
|
|
|
|
|
# Expose web port |
|
|
EXPOSE 7860 |
|
|
|
|
|
# Run app |
|
|
CMD ["python3", "main.py"] |
|
|
|