diff --git a/.env.sample b/.env.sample index b74e48d371c..47ed2e0c24e 100644 --- a/.env.sample +++ b/.env.sample @@ -177,9 +177,13 @@ CACHE_BUSTING_STATIC_ENABLED=False MEMCACHED_ENABLED=False MEMCACHED_BACKEND=django.core.cache.backends.memcached.MemcachedCache -MEMCACHED_LOCATION=127.0.0.1:11211 +MEMCACHED_LOCATION=memcached:11211 MEMCACHED_LOCK_EXPIRE=3600 MEMCACHED_LOCK_TIMEOUT=10 +# +# Options for memcached binary, e.g. -vvv to log all requests and cache hits +# +MEMCACHED_OPTIONS= MAX_DOCUMENT_SIZE=200 CLIENT_RESULTS_LIMIT=5 diff --git a/.env_dev b/.env_dev index 6119f68ebd6..c5ef4c58b63 100644 --- a/.env_dev +++ b/.env_dev @@ -177,9 +177,13 @@ CACHE_BUSTING_STATIC_ENABLED=False MEMCACHED_ENABLED=False MEMCACHED_BACKEND=django.core.cache.backends.memcached.MemcachedCache -MEMCACHED_LOCATION=127.0.0.1:11211 +MEMCACHED_LOCATION=memcached:11211 MEMCACHED_LOCK_EXPIRE=3600 MEMCACHED_LOCK_TIMEOUT=10 +# +# Options for memcached binary, e.g. -vvv to log all requests and cache hits +# +MEMCACHED_OPTIONS= MAX_DOCUMENT_SIZE=200 CLIENT_RESULTS_LIMIT=5 diff --git a/.env_local b/.env_local index 48cba183d81..492022d6d3d 100644 --- a/.env_local +++ b/.env_local @@ -177,9 +177,13 @@ CACHE_BUSTING_STATIC_ENABLED=False MEMCACHED_ENABLED=False MEMCACHED_BACKEND=django.core.cache.backends.memcached.MemcachedCache -MEMCACHED_LOCATION=127.0.0.1:11211 +MEMCACHED_LOCATION=memcached:11211 MEMCACHED_LOCK_EXPIRE=3600 MEMCACHED_LOCK_TIMEOUT=10 +# +# Options for memcached binary, e.g. -vvv to log all requests and cache hits +# +MEMCACHED_OPTIONS= MAX_DOCUMENT_SIZE=200 CLIENT_RESULTS_LIMIT=5 diff --git a/.env_test b/.env_test index fb1910d57b1..cfbc1098d97 100644 --- a/.env_test +++ b/.env_test @@ -186,9 +186,13 @@ CACHE_BUSTING_STATIC_ENABLED=False MEMCACHED_ENABLED=False MEMCACHED_BACKEND=django.core.cache.backends.memcached.MemcachedCache -MEMCACHED_LOCATION=127.0.0.1:11211 +MEMCACHED_LOCATION=memcached:11211 MEMCACHED_LOCK_EXPIRE=3600 MEMCACHED_LOCK_TIMEOUT=10 +# +# Options for memcached binary, e.g. -vvv to log all requests and cache hits +# +MEMCACHED_OPTIONS= MAX_DOCUMENT_SIZE=200 CLIENT_RESULTS_LIMIT=5 diff --git a/docker-compose-test.yml b/docker-compose-test.yml index 762183a5eac..14a4b999fab 100644 --- a/docker-compose-test.yml +++ b/docker-compose-test.yml @@ -68,6 +68,19 @@ services: - statics:/mnt/volumes/statics restart: unless-stopped + # memcached service + memcached: + image: memcached:alpine + container_name: memcached4${COMPOSE_PROJECT_NAME} + command: memcached ${MEMCACHED_OPTIONS} + restart: on-failure + healthcheck: + test: nc -z 127.0.0.1 11211 + interval: 30s + timeout: 30s + retries: 5 + start_period: 30s + # Gets and installs letsencrypt certificates letsencrypt: image: geonode/letsencrypt:latest diff --git a/docker-compose.yml b/docker-compose.yml index 853231d824a..36d6d196fe2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -46,6 +46,19 @@ services: entrypoint: ["/usr/src/geonode/entrypoint.sh"] command: "celery-cmd" + # memcached service + memcached: + image: memcached:alpine + container_name: memcached4${COMPOSE_PROJECT_NAME} + command: memcached ${MEMCACHED_OPTIONS} + restart: on-failure + healthcheck: + test: nc -z 127.0.0.1 11211 + interval: 30s + timeout: 30s + retries: 5 + start_period: 30s + # Nginx is serving django static and media files and proxies to django and geonode geonode: image: geonode/nginx:1.25.1 diff --git a/entrypoint.sh b/entrypoint.sh index 6bb062b910e..bcb925467f7 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -16,7 +16,6 @@ invoke () { # Start cron && memcached services service cron restart -service memcached restart echo $"\n\n\n" echo "-----------------------------------------------------" diff --git a/scripts/docker/base/ubuntu/Dockerfile b/scripts/docker/base/ubuntu/Dockerfile index 13ca38d20c4..8e406212798 100644 --- a/scripts/docker/base/ubuntu/Dockerfile +++ b/scripts/docker/base/ubuntu/Dockerfile @@ -5,7 +5,7 @@ RUN mkdir -p /usr/src/geonode ## Enable postgresql-client-15 RUN apt-get update -y && apt-get install curl wget unzip gnupg2 -y RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - -# will install python3.10 +# will install python3.10 RUN apt-get install lsb-core -y RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |tee /etc/apt/sources.list.d/pgdg.list @@ -32,8 +32,7 @@ RUN pip3 install uwsgi \ && pip install pip --upgrade \ && pip install pygdal==$(gdal-config --version).* flower==0.9.4 -# Activate "memcached" -RUN apt-get install -y memcached +# Install "sherlock" to be used with "memcached" RUN pip install sherlock # Cleanup apt update lists