У меня есть следующий Dockerfile:
ОТ nginx
RUN apt-получить обновление
RUN apt-get install python3 python3-pip fcgiwrap -y
докер-compose.yml:
версия: '3.3'
Сервисы:
нгинкс:
сборка: ./data-nginx/.
имя_контейнера: nginx
перезапуск: всегда
порты:
- "80:80"
- "443:443"
сети:
- веб сервер
тома:
- ./data-nginx/conf.d/:/etc/nginx/conf.d/
- ./data-nginx/fastcgi.conf:/etc/nginx/fastcgi.conf
- ./data-nginx/proxy.conf:/etc/nginx/proxy.conf
- ./data-nginx/mime.types:/etc/nginx/mime.types
- ./data-nginx/fcgiwrap.conf:/etc/nginx/fcgiwrap.conf
- ./www:/var/www
dafault.conf nginx:
сервер {
слушать 80;
имя сервера _;
корень /var/www;
индекс index.html index.htm;
место расположения / {
try_files $uri $uri/ =404;
}
включить fcgiwrap.conf;
}
и fcgiwrap.conf:
местоположение /cgi-bin/ {
сжатие выключено;
корень /var/www;
fastcgi_pass unix:/run/fcgiwrap.socket;
включить /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
}
в /var/www/cgi-bin/ у меня есть test.py:
#!/usr/bin/python3
распечатать("Тест")
Когда я сейчас иду в http://localhost/cgi-bin/test.py
Я получил:
[ошибка] 31#31: *1 connect() to unix:/run/fcgiwrap.socket не удалось (111: соединение отклонено) при подключении к восходящему каналу, клиент: 172.18.0.1, сервер: _, запрос: "GET /cgi- bin/test.py HTTP/1.1", восходящий поток: "fastcgi://unix:/run/fcgiwrap.socket:", хост: "localhost"
Чего я хочу добиться, так это запустить python на хосте (локальном) с веб-сайта, нажав кнопку.