Skip to content

Commit 810f662

Browse files
author
Sean Sullivan
committed
Use gunicorn and restart processes after 40 requests to prevent memory leak
1 parent f5b5aa5 commit 810f662

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

Dockerfile

+13-5
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,25 @@ RUN useradd -d /home/datashader datashader && \
2020
USER datashader
2121
RUN mkdir /home/datashader/tmp
2222
COPY --from=builder /build/dist/*.whl /home/datashader/tmp/
23+
ENV PATH="$PATH:/home/datashader/.local/bin"
2324
RUN pip install --upgrade pip && \
2425
pip install --no-cache-dir /home/datashader/tmp/*.whl && \
26+
pip install gunicorn && \
2527
pip install uvicorn
2628

2729
COPY deployment/logging_config.yml /opt/elastic_datashader/
30+
COPY deployment/gunicorn_config.py /opt/elastic_datashader/
2831

2932
VOLUME ["/opt/elastic_datashader/tms-cache"]
3033
ENV DATASHADER_CACHE_DIRECTORY=/opt/elastic_datashader/tms-cache
31-
ENV PATH="$PATH:/home/datashader/.local/bin"
32-
ENTRYPOINT [ "uvicorn", \
33-
"elastic_datashader:app", \
34-
"--ssl-ciphers","!SHA:!SHA256:!CHACHA20:!AESCCM:!ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384", \
35-
"--log-config", "/opt/elastic_datashader/logging_config.yml" \
34+
35+
36+
ENTRYPOINT [ "gunicorn", \
37+
"--ciphers","!SHA:!SHA256:!CHACHA20:!AESCCM:!ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384", \
38+
"--chdir", "/opt/elastic_datashader", \
39+
"-c", "/opt/elastic_datashader/gunicorn_config.py", \
40+
"--max-requests", "40", \
41+
"--workers", "30", \
42+
"-k", "uvicorn.workers.UvicornWorker", \
43+
"elastic_datashader:app" \
3644
]

0 commit comments

Comments
 (0)