나는 비교적 새로운 uWSGI를 사용하여 파이썬 응용 프로그램을 제공하고 있는데 vassal을 사용하여 황제 모드에서 uWSGI 프로세스를 시작하려고 시도하지만 다음 명령을 사용하여 Docker 내부에서 uWSGI를 시작하려고 할 때마다 (root
) :Docker에서 uWSGI가 시작되지 않는 이유는 무엇입니까?
# /usr/local/bin/uwsgi --ini /etc/uwsgi/emperor.ini
은 다음과 같습니다
# files/etc/uwsgi/emperor.ini
[uwsgi]
emperor = /etc/uwsgi/apps-enabled
die-on-term = true
log-date = true
:
[uWSGI] getting INI configuration from /etc/uwsgi/emperor.ini
2.0.13.1
emperor.ini
구성 파일과 같은 691,363,210
유일하게 좋아하는 하인의 구성은 보이지만 :
는 NB# files/etc/uwsgi/apps-enabled/application.ini
[uwsgi]
app_dir = /var/www/server
plugin = python
master = true
callable = app
chdir = %(app_dir)
mount = /=%(app_dir)/start.py
protocol = uwsgi
socket = :8079
uid = www-data
gid = www-data
buffer-size = 32768
enable-threads = true
single-interpreter = true
processes = 1
stats = 127.0.0.1:1717
(: 다음 올바른 위치에 복사합니다 위에서 그들이 Dockerfile를 기준으로 사는 곳의 측면에서 주어진 파일 이름, 기본적으로 제거 접두사 files
) 현재
나는 uWSGI 프로세스를 시작하려고 시도하고 있지만 내가) ubuntu:latest
및 alpine:latest
을 시도하고 같은 문제가 발생했습니다 불구하고 (AN ubuntu:trusty
기본 이미지의 떨어져 내장되어 사용하고있어 uWSGI 도커 이미지 이전의 명시된 바와 같이 관리자와 y, 명령 행에서 직접 실행할 때도 실패합니다. Docker 이미지에서 나는 pip
을 사용하여 uWSGI를 설치하고 있지만 apt-get
과 같은 결과를 보았습니다.
또 다른 버전의 uWSGI 2.0.13.1 및 1.9와 동일한 결과를 시도했음을 언급해야합니다. 언급 한 바와 같이
# Dockerfile
FROM ubuntu:trusty
MAINTAINER Sean Quinn "[email protected]"
RUN apt-get update \
&& apt-get install -y \
ack-grep git nano \
supervisor \
build-essential gcc python python-dev python-pip
RUN sed -i 's/^\(\[supervisord\]\)$/\1\nnodaemon=true/' /etc/supervisor/supervisord.conf \
&& sed -i 's/^\(\[supervisord\]\)$/\1\nloglevel=debug/' /etc/supervisor/supervisord.conf \
&& sed -i 's/^\(files = .*\)$/;\1/' /etc/supervisor/supervisord.conf \
&& sed -i 's/^\(\[include\]\)$/\1\nfiles = \/etc\/supervisor\/conf.d\/*.conf/' /etc/supervisor/supervisord.conf
ENV UWSGI_VERSION 2.0.13.1
RUN pip install uwsgi==${UWSGI_VERSION}
RUN mkdir -p /etc/uwsgi \
&& mkdir -p /etc/uwsgi/apps-available \
&& mkdir -p /etc/uwsgi/apps-enabled \
&& mkdir -p /var/log/uwsgi
COPY files/etc/supervisor/conf.d/uwsgi.conf /etc/supervisor/conf.d/uwsgi.conf
COPY files/etc/uwsgi/emperor.ini /etc/uwsgi/emperor.ini
VOLUME /etc/uwsgi/apps-enabled
VOLUME /var/www
ENTRYPOINT ["/usr/bin/supervisord"]
CMD ["-c", "/etc/supervisor/supervisord.conf"]
는 supervisord
프로세스는 다음 관리자 구성을 사용하여 uWSGI 프로세스를 시작하려고합니다.
# files/etc/supervisor/conf.d/uwsgi.conf
[program:uwsgi]
command=/usr/local/bin/uwsgi --ini /etc/uwsgi/emperor.ini
user=root
응용 프로그램 파이썬 파일은 /var/www
의 하위 디렉토리에 설치하고 응용 프로그램 uWSGI 구성은 /etc/uwsgi/apps-enabled
에 장착된다. 내가 uWSGI 제대로 emperor.ini
을 처리 확인하고 하인에게 .ini
파일을 읽을 수있는 장소의 구성 및 파일로 (도커의 외부) 새로운 우분투 VM에 대한 감독 및 uWSGI을 설치하는 경우
기괴한 일이다. uWSGI를 시작하고 구성 파일을 올바르게 읽고 싶기 때문에 방정식에 nginx를 추가하려고 아직 시도하지 않았습니다.
로깅을 늘리거나 uWSGI 바이너리의 버전 번호 인 것으로 보이는 이유를 확인하는 방법이 있습니까? uWSGI 프로세스가 명령 줄 옵션을 완전히 무시하는 것과 같습니다. 나는 분명해야 할 뭔가를 놓치고있는 것처럼 느껴진다.
아무도 도와 줄 수있는 도움에 미리 감사드립니다.
어떻게 uwsgi를 시작하고 오류가 있습니까? 로깅을 위해 uwsgi 설정에 logto = /path/to/project/error.log를 추가하십시오. –
@MohammadAmin 감독자를 통해 uwsgi를 시작하려했는데'/ usr/local/bin/uwsgi --ini/etc/uwsgi/emperor.ini' 명령을 사용하여 루트로 직접 시도했지만 (위 참조) logto' 옵션을 사용하지만 내 이해가 없다면 uwsgi는 콘솔에 직접 로그해야합니다. 그것이 정확하다고 가정 할 때, 위에서 언급 한 것은 내가 보는 것입니다 : 오류가없고 유일한 출력은 버전 번호입니다. 감사! –
나는 똑같은 문제가 있음을 기억하지만, 나는 감독관을 통해 시작하여 내 문제가 사라 졌다고 생각한다. –