Browse Source

add memcached

abdofarag 5 years ago
parent
commit
d6e63af90c

+ 1 - 1
clean.sh

@@ -3,7 +3,7 @@
 docker rm -f $(docker ps -q)
 
 # Remove all images 
-docker rmi $(docker images | awk '{print $3}' | grep -v IMAGE)
+#docker rmi $(docker images | awk '{print $3}' | grep -v IMAGE)
 
 # Remove all volumes
 docker volume rm $(docker volume ls | awk '{print $2}' | grep -v VOLUME)

+ 12 - 0
docker-compose.yml

@@ -16,10 +16,12 @@ services:
     depends_on:
       - mysql
       - rabbit
+      - memcached
     environment:
       DEBUG: 'true'
     links:
       - rabbit:rabbit
+      - memcached:memcached
 
   # RabbitMQ - queue
   rabbit:
@@ -117,3 +119,13 @@ services:
       - mysql
     environment:
       PMA_HOST: mysql
+
+
+  memcached:
+    restart: always
+    container_name: "barcode-memcached"
+    build: docker-memcached/
+    image: backend-memcached
+    ports:
+      - "11211:11211"
+

+ 23 - 0
docker-memcached/Dockerfile

@@ -0,0 +1,23 @@
+FROM ubuntu:16.04
+
+ENV DEBIAN_FRONTEND noninteractive
+#ENV http_proxy http://proxy-address:proxy-port
+#ENV https_proxy https://proxy-address:proxy-port
+
+# Update our apt index and create scripts directory
+RUN apt-get update
+RUN apt-get -y install memcached
+RUN mkdir scripts
+
+COPY memcached_init.sh set_sysctl.conf memcached.cfg /scripts/
+RUN echo "Add nf_conntrack to modules ...\n"\
+    && echo "nf_conntrack" >> /etc/modules \
+    && echo "Add limits settings ...\n"\
+    && echo "* soft nofile 1000000" >> /etc/security/limits.conf \
+    && echo "* hard nofile 1000000" >> /etc/security/limits.conf
+
+RUN cp /scripts/set_sysctl.conf /etc/sysctl.conf
+
+ENV DEBIAN_FRONTEND teletype
+
+CMD /scripts/memcached_init.sh

+ 11 - 0
docker-memcached/memcached.cfg

@@ -0,0 +1,11 @@
+# 5 GB
+MEMORY="64"
+
+# Network config
+LISTEN="0.0.0.0"
+PORT="11211"
+
+# User to run under
+USER="memcache"
+
+THREADS="16"

+ 26 - 0
docker-memcached/memcached_init.sh

@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# This script will configure and start the memcached service inside a docker
+# container
+
+if [ -f /etc/memcached.conf ]; then
+    mv /etc/memcached.conf /etc/memcached.conf.old
+    echo -e "\n\nBackup /etc/memcached.conf to /etc/memcached.conf.old"
+fi
+
+. /scripts/memcached.cfg
+
+echo -e "\n\nWrite memcached config file ..."
+cat > /etc/memcached.conf <<- EOF
+	# Daemon mode
+	-d
+	logfile /var/log/memcached.log
+	-m "$MEMORY"
+	-p "$PORT"
+	-u "$USER"
+	-l "$LISTEN"
+	-t "$THREADS"
+EOF
+
+service memcached start  \
+    && tail -f /dev/null

+ 20 - 0
docker-memcached/set_sysctl.conf

@@ -0,0 +1,20 @@
+net.ipv4.tcp_tw_reuse=1
+net.ipv4.tcp_tw_recycle=0
+net.ipv4.ip_local_port_range=1024 65535
+net.ipv4.tcp_fin_timeout=45
+net.core.netdev_max_backlog=10000
+net.ipv4.tcp_max_syn_backlog=12048
+net.core.somaxconn=16384
+net.netfilter.nf_conntrack_max = 512000
+net.ipv4.tcp_syncookies = 1
+#
+# cassandra suggested settings
+#
+net.core.rmem_max = 16777216
+net.core.wmem_max = 16777216
+net.core.rmem_default = 16777216
+net.core.wmem_default = 16777216
+net.core.optmem_max = 40960
+net.ipv4.tcp_rmem = 4096 87380 16777216
+net.ipv4.tcp_wmem = 4096 87380 16777216
+vm.max_map_count = 1048575

+ 3 - 0
setup.sh

@@ -18,6 +18,9 @@ apt-get update && apt-get install -y docker-ce=$(apt-cache madison docker-ce | g
 
 fi
 
+curl  -o /usr/local/bin/memcache-top https://raw.githubusercontent.com/eculver/memcache-top/master/memcache-top
+chmod a+x /usr/local/bin/memcache-top
+
 if [ -f /usr/local/bin/docker-compose ]
 then
     echo 'Docker Compose Exist'