Проблема с сервером uwsgi - не удается запустить ssh: нет такого файла или каталога - PullRequest
0 голосов
/ 27 ноября 2018

Я запускаю флешку через uwsgi и nginix в Ubuntu, как описано в этой статье .В соответствии с этой статьей я использую virtualenv.У меня все работает, но я сталкиваюсь с проблемой с git pull, которую должен выполнять мой сценарий:

Nov 26 19:07:42 airflow-server uwsgi[18636]: Handling change to seer
Nov 26 19:07:42 airflow-server uwsgi[18636]: echo $PATH: b'/home/engineering/github_webhook_endpoint/github_webhook_endpointenv/bin\n'
Nov 26 19:07:42 airflow-server uwsgi[18636]: Fetching origin
Nov 26 19:07:42 airflow-server uwsgi[18636]: error: cannot run ssh: No such file or directory
Nov 26 19:07:42 airflow-server uwsgi[18636]: fatal: unable to fork
Nov 26 19:07:42 airflow-server uwsgi[18636]: error: Could not fetch origin
Nov 26 19:07:42 airflow-server uwsgi[18636]: Successfully git pull'd at /home/engineering/seer

Сценарий:

from flask import Flask, request
from pathlib import Path
import os
import json
import requests
import subprocess

local_dir = '/home/engineering'

application = Flask(__name__)

def handle_request(data):
    repo_name = data['repository']['name']
    local_repos = [x.name for x in Path(local_dir).iterdir()]

    print(f'Handling change to {repo_name}')

    if repo_name in local_repos:
        print('echo $PATH:', subprocess.check_output("echo $PATH",shell=True))
        os.system(f'cd {local_dir}/{repo_name} && /usr/bin/git fetch --all && /usr/bin/git reset --hard origin/master')
        print(f'Successfully git pull\'d at {local_dir}/{repo_name}')
    else:
        print(f'No such repo at {local_dir}/{repo_name}')

@application.route('/',methods=['POST'])
def foo():
    data = json.loads(request.data)
    handle_request(data)
    return 'OK'

if __name__ == '__main__':
    application.run(host='0.0.0.0')

I 'Я пытался найти решения в Интернете, но ни одна из них, похоже, не написана для моей конкретной проблемы, и я ничего не понимаю.У меня есть SSH-ключи, которые git использует в моем обычном окружении, но я не уверен, как «сказать» git использовать их в этом virtualenv.

...