From 068f2d8601aec0bb91d74df635336256dc517320 Mon Sep 17 00:00:00 2001 From: Nikolaos Karaolidis Date: Sun, 27 Aug 2023 17:04:53 +0200 Subject: [PATCH] Add support services Signed-off-by: Nikolaos Karaolidis --- docker-compose.yml | 22 ++++++++++++++++++ support/nginx/config/default.conf | 3 +++ support/nginx/docker-compose.yml | 14 +++++++++++ support/nginx/nginx.conf | 32 ++++++++++++++++++++++++++ support/rabbitmq/Dockerfile | 8 +++++++ support/rabbitmq/docker-compose.yml | 21 +++++++++++++++++ support/timescaledb/docker-compose.yml | 19 +++++++++++++++ 7 files changed, 119 insertions(+) create mode 100644 docker-compose.yml create mode 100644 support/nginx/config/default.conf create mode 100644 support/nginx/docker-compose.yml create mode 100644 support/nginx/nginx.conf create mode 100644 support/rabbitmq/Dockerfile create mode 100644 support/rabbitmq/docker-compose.yml create mode 100644 support/timescaledb/docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..49a5914 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,22 @@ +services: + timescaledb: + extends: + file: support/timescaledb/docker-compose.yml + service: timescaledb + + rabbitmq: + extends: + file: support/rabbitmq/docker-compose.yml + service: rabbitmq + + nginx: + extends: + file: support/nginx/docker-compose.yml + service: nginx + +volumes: + timescaledb-data: + timescaledb-logs: + rabbitmq-data: + rabbitmq-logs: + nginx-logs: diff --git a/support/nginx/config/default.conf b/support/nginx/config/default.conf new file mode 100644 index 0000000..d537bd8 --- /dev/null +++ b/support/nginx/config/default.conf @@ -0,0 +1,3 @@ +server { + listen 80; +} diff --git a/support/nginx/docker-compose.yml b/support/nginx/docker-compose.yml new file mode 100644 index 0000000..3ea1096 --- /dev/null +++ b/support/nginx/docker-compose.yml @@ -0,0 +1,14 @@ +services: + nginx: + image: nginx + hostname: nginx + restart: unless-stopped + ports: + - 8080:80 + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf + - ./config:/etc/nginx/conf.d + - nginx-logs:/var/log/nginx + +volumes: + nginx-logs: diff --git a/support/nginx/nginx.conf b/support/nginx/nginx.conf new file mode 100644 index 0000000..5e076aa --- /dev/null +++ b/support/nginx/nginx.conf @@ -0,0 +1,32 @@ + +user nginx; +worker_processes auto; + +error_log /var/log/nginx/error.log notice; +pid /var/run/nginx.pid; + + +events { + worker_connections 1024; +} + + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + #tcp_nopush on; + + keepalive_timeout 65; + + #gzip on; + + include /etc/nginx/conf.d/*.conf; +} diff --git a/support/rabbitmq/Dockerfile b/support/rabbitmq/Dockerfile new file mode 100644 index 0000000..2045e7f --- /dev/null +++ b/support/rabbitmq/Dockerfile @@ -0,0 +1,8 @@ +FROM rabbitmq + +RUN apt-get update && apt-get install -y curl jq wget && rm -rf /var/lib/apt/lists/* + +RUN curl -s "https://api.github.com/repos/noxdafox/rabbitmq-message-deduplication/releases/latest" | jq -r '.assets[] | select(.name | endswith(".ez")).browser_download_url' | while read url; do file=$(basename $url); new_name=$(echo $file | sed 's/-[^-]*\.ez/\.ez/'); wget $url -O plugins/$new_name; done + +RUN rabbitmq-plugins disable --offline rabbitmq_prometheus +RUN rabbitmq-plugins enable --offline rabbitmq_management rabbitmq_message_deduplication diff --git a/support/rabbitmq/docker-compose.yml b/support/rabbitmq/docker-compose.yml new file mode 100644 index 0000000..7b64157 --- /dev/null +++ b/support/rabbitmq/docker-compose.yml @@ -0,0 +1,21 @@ +services: + rabbitmq: + build: + context: . + dockerfile: Dockerfile + hostname: rabbitmq + restart: unless-stopped + ports: + - 5672:5672 + - 15672:15672 + volumes: + - rabbitmq-data:/var/lib/rabbitmq + - rabbitmq-logs:/var/log/rabbitmq + environment: + - RABBITMQ_DEFAULT_VHOST=${RABBITMQ_VHOST} + - RABBITMQ_DEFAULT_USER=${RABBITMQ_USER} + - RABBITMQ_DEFAULT_PASS=${RABBITMQ_PASSWORD} + +volumes: + rabbitmq-data: + rabbitmq-logs: diff --git a/support/timescaledb/docker-compose.yml b/support/timescaledb/docker-compose.yml new file mode 100644 index 0000000..b808c7c --- /dev/null +++ b/support/timescaledb/docker-compose.yml @@ -0,0 +1,19 @@ +services: + timescaledb: + image: timescale/timescaledb-ha:pg15-all + hostname: timescaledb + restart: unless-stopped + ports: + - 5432:5432 + volumes: + - timescaledb-data:/home/postgres/pgdata/data + - timescaledb-logs:/home/postgres/pg_log + environment: + - TIMESCALEDB_TELEMETRY=off + - POSTGRES_USER=${POSTGRES_USER} + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + - POSTGRES_DB=${POSTGRES_DB} + +volumes: + timescaledb-data: + timescaledb-logs: