diff --git a/dkhost.xai-corp.net.yml b/dkhost.xai-corp.net.yml index 355f995..4c510af 100644 --- a/dkhost.xai-corp.net.yml +++ b/dkhost.xai-corp.net.yml @@ -60,8 +60,11 @@ host: gluster:/gitea mount: /var/lib/gitea jenkins: - host: gluster:/jenkins + host: gluster:/jenkins2 mount: /var/lib/jenkins + prometheus: + host: gluster:/prometheus + mount: /opt/prometheus gluster_remove: elasticsearch: host: gluster:/elasticsearch diff --git a/dockerfiles/services/build_apps.sh b/dockerfiles/services/build_apps.sh index 745486a..2383c5c 100644 --- a/dockerfiles/services/build_apps.sh +++ b/dockerfiles/services/build_apps.sh @@ -2,12 +2,13 @@ docker login -u richard -p $DKREGISTRY_PASS $DKREGISTRY -(cd nextcloud && docker-compose -f docker-compose.yml build) +(cd nextcloud && docker-compose -f docker-compose-build.yml build) (cd sslproxy && docker-compose -f docker-compose.yml build) (cd letsencrypt && docker-compose -f docker-compose.yml build) (cd prometheus && docker-compose -f docker-compose.yml build) docker push dkregistry.xai-corp.net:5000/xaicorp/nextcloud:latest +docker push dkregistry.xai-corp.net:5000/xaicorp/nextcloud-web:latest docker push dkregistry.xai-corp.net:5000/sslproxy:2.1 docker push dkregistry.xai-corp.net:5000/letsencrypt:latest docker push dkregistry.xai-corp.net:5000/xaicorp/prometheus:latest diff --git a/dockerfiles/services/nextcloud/Dockerfile b/dockerfiles/services/nextcloud/Dockerfile index 918d9da..96c35e0 100644 --- a/dockerfiles/services/nextcloud/Dockerfile +++ b/dockerfiles/services/nextcloud/Dockerfile @@ -1,4 +1,3 @@ -FROM nextcloud:13 +FROM nextcloud:13-fpm RUN apt-get update && apt-get install -y smbclient && rm -rf /var/lib/apt/lists/* - diff --git a/dockerfiles/services/nextcloud/Dockerfile-web b/dockerfiles/services/nextcloud/Dockerfile-web new file mode 100644 index 0000000..98517fb --- /dev/null +++ b/dockerfiles/services/nextcloud/Dockerfile-web @@ -0,0 +1,3 @@ +FROM nginx + +COPY nginx.conf /etc/nginx/conf.d/default.conf diff --git a/dockerfiles/services/nextcloud/docker-compose-build.yml b/dockerfiles/services/nextcloud/docker-compose-build.yml new file mode 100644 index 0000000..3548945 --- /dev/null +++ b/dockerfiles/services/nextcloud/docker-compose-build.yml @@ -0,0 +1,28 @@ +--- +# docker-compose file for nextcloud server + +# docker login dkregistry.xai-corp.net:5000 +# docker-compose build && docker push dkregistry.xai-corp.net:5000/xaicorp/nextcloud:latest +# DOCKER_HOST=dkhost:2376 docker stack deploy --with-registry-auth -c docker-compose-prod.yml owncloud + +version: '3' +services: + + xaicloud: + image: "dkregistry.xai-corp.net:5000/xaicorp/nextcloud:latest" + build: + context: . + dockerfile: Dockerfile + ports: + - 8083:80 +# - 9083:9000 + volumes: + - ./data:/var/www/html + + web: + image: "dkregistry.xai-corp.net:5000/xaicorp/nextcloud-web:latest" + build: + context: . + dockerfile: Dockerfile-web + ports: + - 8083:80 diff --git a/dockerfiles/services/nextcloud/docker-compose-prod.yml b/dockerfiles/services/nextcloud/docker-compose-prod.yml index 602f842..56195d9 100644 --- a/dockerfiles/services/nextcloud/docker-compose-prod.yml +++ b/dockerfiles/services/nextcloud/docker-compose-prod.yml @@ -5,18 +5,18 @@ # DOCKER_HOST=dkhost:2376 docker stack ps owncloud version: '3.4' + +volumes: + cache: + services: - app: - image: dkregistry.xai-corp.net:5000/xaicorp/nextcloud:latest - ports: - - 8083:80 -# - 9083:9000 + xaicloud: + image: "dkregistry.xai-corp.net:5000/xaicorp/nextcloud:latest" volumes: - /opt/shared/nextcloud/data:/var/www/html/data - /opt/shared/nextcloud/config:/var/www/html/config - /opt/shared/nextcloud/apps:/var/www/html/custom_apps - deploy: mode: replicated replicas: 1 @@ -30,15 +30,50 @@ services: order: start-first resources: limits: + memory: 512M + networks: + - prod + +# logging: +# driver: fluentd +# options: +# fluentd-address: "logs.xai-corp.net:24224" +# fluentd-async-connect: 'true' +# tag: nextcloud + + web: + image: "dkregistry.xai-corp.net:5000/xaicorp/nextcloud-web:latest" + ports: + - 8083:80 + volumes: + - cache:/data/nginx/cache/nextcloud + - /opt/shared/nextcloud/data:/var/www/html/data + - /opt/shared/nextcloud/config:/var/www/html/config + - /opt/shared/nextcloud/apps:/var/www/html/custom_apps + + deploy: + mode: replicated + replicas: 1 + restart_policy: + condition: any + delay: "30s" + max_attempts: 5 + update_config: + parallelism: 1 + delay: 2s + order: start-first + resources: + limits: # cpus: '1' memory: 512M - - logging: - driver: fluentd - options: - fluentd-address: "logs.xai-corp.net:24224" - fluentd-async-connect: 'true' - tag: nextcloud +# healthcheck: +# test: curl -f http://localhost ||exit 1 +# interval: 1m30s +# timeout: 1s +# retries: 2 + networks: + - ingress + - prod # collabora: # image: collabora/code diff --git a/dockerfiles/services/nextcloud/docker-compose.yml b/dockerfiles/services/nextcloud/docker-compose.yml index de0ca32..4b5a4e4 100644 --- a/dockerfiles/services/nextcloud/docker-compose.yml +++ b/dockerfiles/services/nextcloud/docker-compose.yml @@ -5,47 +5,41 @@ # docker-compose build && docker push dkregistry.xai-corp.net:5000/xaicorp/nextcloud:latest # DOCKER_HOST=dkhost:2376 docker stack deploy --with-registry-auth -c docker-compose-prod.yml owncloud -version: '3' +version: '2' + +volumes: + nextcloud: + db: + cache: + services: - owncloud: - image: "dkregistry.xai-corp.net:5000/xaicorp/nextcloud:latest" - build: - context: . - dockerfile: Dockerfile + db: + image: mariadb + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD=test + - MYSQL_PASSWORD=test + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + xaicloud: + image: nextcloud:fpm + links: + - db + volumes: + - nextcloud:/var/www/html + + web: + image: nginx ports: - 8083:80 -# - 9083:9000 + links: + - app volumes: - - ./data:/var/www/html -# -# collabora: -# image: collabora/code -# ports: -# - 9980:9980 -# environment: -# domain: office\\.xai-corp\\.net -# username: admin -# password: ah8031qhnbc -# server_name: office.xai-corp.net + - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro + - cache:/data/nginx/cache/nextcloud + volumes_from: + - app -# letsencrypt: -# image: linuxserver/letsencrypt -# volumes: -# - ./letsencrypt:/config -# environment: -# URL: xai-corp.net -# SUBDOMAINS: www,sql,xaibox,office -# TZ: America/Montreal -# EMAIL: r_morgan@sympatico.ca - - -#TODO: -# cron: - -# http: -# image: "dkregistry.xai-corp.net:5000/sslproxy:2.0" -# volumes: -# - ./letsencrypt:/etc/letsencrypt:ro -# ports: -# - "443:443" diff --git a/dockerfiles/services/nextcloud/nginx.conf b/dockerfiles/services/nextcloud/nginx.conf new file mode 100755 index 0000000..df73cc1 --- /dev/null +++ b/dockerfiles/services/nextcloud/nginx.conf @@ -0,0 +1,35 @@ +proxy_cache_path /data/nginx/cache/nextcloud levels=1:2 keys_zone=my_cache:10m max_size=10g + inactive=60m use_temp_path=off; + +server { + listen 80; + index index.php index.html; + server_name docker.test; + + root /var/www/html; + + location /remote.php { + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass tasks.xaicloud:9000; + fastcgi_index remote.php; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; +# fastcgi_param SCRIPT_FILENAME $document_root/index.php; + fastcgi_param PATH_INFO $fastcgi_path_info; + } + + location / { + try_files $uri /index.php?$args; + } + +# location / { + location ~ \.php$ { + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass tasks.xaicloud:9000; + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; +# fastcgi_param SCRIPT_FILENAME $document_root/index.php; + fastcgi_param PATH_INFO $fastcgi_path_info; + } +} diff --git a/dockerfiles/services/prometheus/docker-compose-prod.yml b/dockerfiles/services/prometheus/docker-compose-prod.yml index 5ba3c49..f4a50e4 100644 --- a/dockerfiles/services/prometheus/docker-compose-prod.yml +++ b/dockerfiles/services/prometheus/docker-compose-prod.yml @@ -14,12 +14,15 @@ services: image: "dkregistry.xai-corp.net:5000/xaicorp/prometheus:latest" ports: - 9090:9090 -# logging: -# driver: fluentd -# options: -# fluentd-address: "logs.xai-corp.net:24224" -# fluentd-async-connect: 'true' -# tag: postgres + volumes: + - /opt/prometheus/data:/prometheus-data + + logging: + driver: fluentd + options: + fluentd-address: "logs.xai-corp.net:24224" + fluentd-async-connect: 'true' + tag: prometheus deploy: mode: replicated replicas: 1 diff --git a/dockerfiles/services/prometheus/prometheus.yml b/dockerfiles/services/prometheus/prometheus.yml index c4afc05..060237a 100644 --- a/dockerfiles/services/prometheus/prometheus.yml +++ b/dockerfiles/services/prometheus/prometheus.yml @@ -16,7 +16,7 @@ scrape_configs: - job_name: glusterfs metrics_path: /metrics - scrape_interval: 30s + scrape_interval: 120s scrape_timeout: 14s static_configs: - targets: @@ -25,7 +25,7 @@ scrape_configs: - job_name: fluentd metrics_path: /metrics - scrape_interval: 10s + scrape_interval: 60s scrape_timeout: 9s static_configs: - targets: diff --git a/glusterfs.yml b/glusterfs.yml index bc06317..e1ce02c 100644 --- a/glusterfs.yml +++ b/glusterfs.yml @@ -17,6 +17,7 @@ - /data/glusterfs/jenkins/brick1 - /data/glusterfs/jenkins2/brick1 - /data/glusterfs/tmp/brick1 + - /data/glusterfs/prometheus/brick1 # - /data/glusterfs/elasticsearch/brick1 volumes: gitea: @@ -28,6 +29,8 @@ distributed_volumes: tmp: - /data/glusterfs/tmp/brick1/brick + prometheus: + - /data/glusterfs/prometheus/brick1 # elasticsearch: # - /data/glusterfs/elasticsearch/brick1/brick