No such file or directory при запуске python скрипта в докер контейнере
Есть docker контейнер с маленьким веб-сервером на python flask. Он должен возвращать результат вызова отдельной консольной программы. Но вместо этого ошибка FileNotFoundError: [Errno 2] No such file or directory: '/autoscreenshot_keygen_web_api/autoscreenshot_keygen_v2'.
Данный исполняемый файл имеется в контейнере и права на выполнения стоят.
user@pc:~/Lazarus projects/AutoScreenshot/keys/keygen_web_api$ docker exec -it b39166daf99e ls -l
total 424
-rwxrwxr-x 1 root root 422712 Oct 23 21:08 autoscreenshot_keygen_v2
-rw-rw-r-- 1 root root 9 Oct 24 12:45 requirements.txt
-rw-rw-r-- 1 root root 645 Oct 24 13:07 web_keygene.py
user@pc:~/Lazarus projects/AutoScreenshot/keys/keygen_web_api$ docker exec -it b39166daf99e pwd
/autoscreenshot_keygen_web_api
Что не так не врубаюсь???
Dockerfile
FROM python:3-alpine
WORKDIR /autoscreenshot_keygen_web_api
COPY requirements.txt .
#COPY ../keygen_v2/autoscreenshot_keygen_v2 .
COPY autoscreenshot_keygen_v2 .
RUN pip3 install --no-cache-dir -r requirements.txt
COPY web_keygene.py .
#COPY logger.py .
ENTRYPOINT ["python3", "web_keygene.py"]
EXPOSE 4555
docker-compose.yml
version: '3'
services:
https_to_http_proxy_server:
build: .
container_name: autoscreenshot_keygen_web_api
environment:
- PYTHONUNBUFFERED=True
- TZ=Europe/Moscow
restart: on-failure
volumes:
- ./logs:/var/log
ports:
- "4555:4555"
command: python3 /autoscreenshot_keygen_web_api/web_keygene.py
web_keygene.py
from flask import Flask, request, url_for, Response
#import requests
#import re
#from logger import log_request, log_error
import subprocess
import sh
app = Flask(__name__)
@app.route("/keys/autoscreenshot/<t>")
def generate_key(t):
if t == 'l' or t == 'm' or t == 'y':
res = subprocess.run(["/autoscreenshot_keygen_web_api/autoscreenshot_keygen_v2", "-" + t])
return res.strip()
#return sh.autoscreenshot_keygen_v2('-' + t)
else:
abort(404)
@app.errorhandler(404)
def not_found(e):
#log_error('404 Not found')
return 'Page not found - 404', 404
if __name__ == '__main__':
app.run(host='0.0.0.0', port=4555)