fix: Install docker CLI and mount docker socket to resolve docker command not found error; add warning note about black VNC screen
This commit is contained in:
parent
2f92e81ec5
commit
371cabd3d9
4 changed files with 11 additions and 5 deletions
|
|
@ -13,6 +13,7 @@ RUN apt-get update && apt-get install -y \
|
||||||
libffi-dev \
|
libffi-dev \
|
||||||
shared-mime-info \
|
shared-mime-info \
|
||||||
fonts-dejavu \
|
fonts-dejavu \
|
||||||
|
docker.io \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Копирование requirements и установка зависимостей
|
# Копирование requirements и установка зависимостей
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ services:
|
||||||
- MUTT_DIR=/home/matrixhasyou/mutt
|
- MUTT_DIR=/home/matrixhasyou/mutt
|
||||||
- GOOGLE_CREDS_FILE=/home/matrixhasyou/domovoy_google_creds.json
|
- GOOGLE_CREDS_FILE=/home/matrixhasyou/domovoy_google_creds.json
|
||||||
volumes:
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
- ./logs:/app/logs
|
- ./logs:/app/logs
|
||||||
- ./exports:/app/exports
|
- ./exports:/app/exports
|
||||||
- ./data:/app/data
|
- ./data:/app/data
|
||||||
|
|
@ -36,6 +37,7 @@ services:
|
||||||
- MUTT_DIR=/home/matrixhasyou/mutt
|
- MUTT_DIR=/home/matrixhasyou/mutt
|
||||||
- GOOGLE_CREDS_FILE=/home/matrixhasyou/domovoy_google_creds.json
|
- GOOGLE_CREDS_FILE=/home/matrixhasyou/domovoy_google_creds.json
|
||||||
volumes:
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
- ./logs:/app/logs
|
- ./logs:/app/logs
|
||||||
- ./exports:/app/exports
|
- ./exports:/app/exports
|
||||||
- ./data:/app/data
|
- ./data:/app/data
|
||||||
|
|
|
||||||
|
|
@ -888,7 +888,7 @@ async def api_gis_status(username: str = Depends(get_current_admin)):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return JSONResponse(status_code=500, content={"message": str(e)})
|
return JSONResponse(status_code=500, content={"message": str(e)})
|
||||||
|
|
||||||
@app.post("/api/infra/run_sudrf_parser")
|
@app.post("/api/sudrf/run")
|
||||||
async def api_run_sudrf_parser(username: str = Depends(get_current_admin)):
|
async def api_run_sudrf_parser(username: str = Depends(get_current_admin)):
|
||||||
try:
|
try:
|
||||||
subprocess.run(["docker", "exec", "lkm37-gis-scraper", "pkill", "-f", "sudrf_reaper.py"])
|
subprocess.run(["docker", "exec", "lkm37-gis-scraper", "pkill", "-f", "sudrf_reaper.py"])
|
||||||
|
|
@ -897,7 +897,7 @@ async def api_run_sudrf_parser(username: str = Depends(get_current_admin)):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return JSONResponse(status_code=500, content={"message": str(e)})
|
return JSONResponse(status_code=500, content={"message": str(e)})
|
||||||
|
|
||||||
@app.get("/api/infra/sudrf_status")
|
@app.get("/api/sudrf/status")
|
||||||
async def api_sudrf_status(username: str = Depends(get_current_admin)):
|
async def api_sudrf_status(username: str = Depends(get_current_admin)):
|
||||||
try:
|
try:
|
||||||
proc = subprocess.run(["docker", "exec", "lkm37-gis-scraper", "ps", "aux"], capture_output=True, text=True)
|
proc = subprocess.run(["docker", "exec", "lkm37-gis-scraper", "ps", "aux"], capture_output=True, text=True)
|
||||||
|
|
|
||||||
|
|
@ -47,9 +47,12 @@
|
||||||
<i class="bi bi-display"></i> СЕССИЯ И ЛОГИ СКАНИРОВАНИЯ
|
<i class="bi bi-display"></i> СЕССИЯ И ЛОГИ СКАНИРОВАНИЯ
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body d-flex flex-column">
|
<div class="card-body d-flex flex-column">
|
||||||
<a href="http://192.168.10.116:6080/vnc.html" target="_blank" class="btn btn-outline-info w-100 py-3 mb-3">
|
<a href="http://192.168.10.116:6080/vnc.html" target="_blank" class="btn btn-outline-info w-100 py-3 mb-2">
|
||||||
<i class="bi bi-window-fullscreen"></i> ОТКРЫТЬ VNC ЭКРАН (noVNC)
|
<i class="bi bi-window-fullscreen"></i> ОТКРЫТЬ VNC ЭКРАН (noVNC)
|
||||||
</a>
|
</a>
|
||||||
|
<div class="alert alert-warning py-2 mb-3 text-warning border-warning" style="font-size: 0.75rem; background: transparent;">
|
||||||
|
<i class="bi bi-exclamation-triangle"></i> <strong>Внимание:</strong> Если жатва не запущена, VNC-экран будет пустым (черным). Браузер Chromium автоматически откроется на экране сразу после нажатия кнопки «Запустить жатву».
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="d-flex justify-content-between align-items-center mb-2">
|
<div class="d-flex justify-content-between align-items-center mb-2">
|
||||||
<span class="small text-muted">ЛОГИ В РЕАЛЬНОМ ВРЕМЕНИ:</span>
|
<span class="small text-muted">ЛОГИ В РЕАЛЬНОМ ВРЕМЕНИ:</span>
|
||||||
|
|
@ -75,7 +78,7 @@ document.getElementById('runSudrfParserBtn').addEventListener('click', async fun
|
||||||
btn.innerHTML = '<span class="spinner-border spinner-border-sm"></span> СЕССИЯ ЗАПУЩЕНА...';
|
btn.innerHTML = '<span class="spinner-border spinner-border-sm"></span> СЕССИЯ ЗАПУЩЕНА...';
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await fetch('/api/infra/run_sudrf_parser', { method: 'POST' });
|
const response = await fetch('/api/sudrf/run', { method: 'POST' });
|
||||||
const result = await response.json();
|
const result = await response.json();
|
||||||
alert(result.message);
|
alert(result.message);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
@ -92,7 +95,7 @@ async function refreshSudrfStatus() {
|
||||||
const logs = document.getElementById('sudrfLogs');
|
const logs = document.getElementById('sudrfLogs');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await fetch('/api/infra/sudrf_status');
|
const response = await fetch('/api/sudrf/status');
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
|
|
||||||
if (data.alive) {
|
if (data.alive) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue