mirror of
https://github.com/umap-project/umap.git
synced 2025-04-28 19:42:36 +02:00
Update the Dockerfile to expose websockets
The Dockerfile now uses ASGI by default (via uvicorn) and embeds a redis server that is used for the synchronization.
This commit is contained in:
parent
d85fc648b1
commit
3e0a6b8f10
3 changed files with 10 additions and 8 deletions
10
Dockerfile
10
Dockerfile
|
@ -1,12 +1,12 @@
|
||||||
# This part installs deps needed at runtime.
|
# This part installs deps needed at runtime.
|
||||||
FROM python:3.11-slim AS common
|
FROM python:3.11-slim AS runtime
|
||||||
|
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y --no-install-recommends \
|
apt-get install -y --no-install-recommends \
|
||||||
tini \
|
tini \
|
||||||
uwsgi \
|
|
||||||
sqlite3 \
|
sqlite3 \
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
|
redis-server \
|
||||||
gdal-bin \
|
gdal-bin \
|
||||||
&& \
|
&& \
|
||||||
apt-get autoremove -y && \
|
apt-get autoremove -y && \
|
||||||
|
@ -14,7 +14,7 @@ RUN apt-get update && \
|
||||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
# This part adds deps needed only at buildtime.
|
# This part adds deps needed only at buildtime.
|
||||||
FROM common AS build
|
FROM runtime AS build
|
||||||
|
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y --no-install-recommends \
|
apt-get install -y --no-install-recommends \
|
||||||
|
@ -39,9 +39,9 @@ WORKDIR /srv/umap
|
||||||
|
|
||||||
COPY . /srv/umap
|
COPY . /srv/umap
|
||||||
|
|
||||||
RUN /venv/bin/pip install .[docker,s3]
|
RUN /venv/bin/pip install .[docker,s3,sync]
|
||||||
|
|
||||||
FROM common
|
FROM runtime
|
||||||
|
|
||||||
COPY --from=build /srv/umap/docker/ /srv/umap/docker/
|
COPY --from=build /srv/umap/docker/ /srv/umap/docker/
|
||||||
COPY --from=build /venv/ /venv/
|
COPY --from=build /venv/ /venv/
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
set -eo pipefail
|
set -eo pipefail
|
||||||
|
|
||||||
source /venv/bin/activate
|
source /venv/bin/activate
|
||||||
|
service redis-server start
|
||||||
|
|
||||||
# collect static files
|
# collect static files
|
||||||
umap collectstatic --noinput
|
umap collectstatic --noinput
|
||||||
|
@ -9,5 +10,5 @@ umap collectstatic --noinput
|
||||||
umap wait_for_database
|
umap wait_for_database
|
||||||
# then migrate the database
|
# then migrate the database
|
||||||
umap migrate
|
umap migrate
|
||||||
# run uWSGI
|
# run the server
|
||||||
exec uwsgi --ini docker/uwsgi.ini
|
exec uvicorn --proxy-headers --no-access-log umap.asgi:application
|
||||||
|
|
|
@ -65,7 +65,7 @@ test = [
|
||||||
"moto[s3]==5.1.1"
|
"moto[s3]==5.1.1"
|
||||||
]
|
]
|
||||||
docker = [
|
docker = [
|
||||||
"uwsgi==2.0.28",
|
"uvicorn==0.34.0",
|
||||||
]
|
]
|
||||||
s3 = [
|
s3 = [
|
||||||
"django-storages[s3]==1.14.5",
|
"django-storages[s3]==1.14.5",
|
||||||
|
@ -73,6 +73,7 @@ s3 = [
|
||||||
sync = [
|
sync = [
|
||||||
"pydantic==2.10.6",
|
"pydantic==2.10.6",
|
||||||
"redis==5.2.1",
|
"redis==5.2.1",
|
||||||
|
"websockets==15.0.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[project.scripts]
|
[project.scripts]
|
||||||
|
|
Loading…
Reference in a new issue