From f48bd298ffddccdc096a26e243a3ee9482b0d834 Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 13 Apr 2023 14:44:55 -0500 Subject: [PATCH] Update: Dockerfile && entrypoint --- Dockerfile | 35 +++++++++++++++--------- docker-compose.yml | 22 +-------------- docker-compose.yml.kibana | 49 +++++++++++++++++++++++++++++++++ docker-compose.yml.manticore | 52 ++++++++++++++++++++++++++++++++++++ entrypoint.sh | 40 ++++++++++++++------------- install_packages.sh | 17 ++++++++++++ server.py | 29 ++++++++++++++++++++ 7 files changed, 192 insertions(+), 52 deletions(-) create mode 100644 docker-compose.yml.kibana create mode 100644 docker-compose.yml.manticore create mode 100755 install_packages.sh create mode 100755 server.py diff --git a/Dockerfile b/Dockerfile index adfcebf1..a4ae70fc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,6 +3,7 @@ FROM debian:stable-slim ARG BRANCH=25.x ARG UID=1000 ARG GID=1000 +ARG PHP_VERSION=7.4 RUN apt update && apt dist-upgrade -y @@ -12,26 +13,28 @@ RUN sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https: RUN apt-get update RUN apt install -y \ - php7.4-dom php7.4-gd php7.4-curl php7.4-intl php7.4-zip php7.4-bcmath \ - sqlite3 php7.4-sqlite3 build-essential elinks unzip xlsx2csv psutils \ - php7.4-memcached php7.4-memcached php7.4-opcache php7.4-intl php7.4-gd \ - php7.4-mysql php7.4-ldap php7.4-dom php7.4-zip php7.4-ldap \ - php7.4-fpm php7.4-mysql php7.4-mbstring php7.4-bz2 \ + tesseract-ocr sudo + +RUN apt install -y r-base r-base-dev r-recommended imagemagick + +RUN apt remove -y php-cli && apt install -y php${PHP_VERSION}-cli + +RUN apt install -y \ + php${PHP_VERSION}-dom php${PHP_VERSION}-gd php${PHP_VERSION}-curl php${PHP_VERSION}-intl php${PHP_VERSION}-zip php${PHP_VERSION}-bcmath \ + sqlite3 php${PHP_VERSION}-sqlite3 build-essential elinks unzip xlsx2csv psutils \ + php${PHP_VERSION}-memcached php${PHP_VERSION}-memcached php${PHP_VERSION}-opcache php${PHP_VERSION}-intl php${PHP_VERSION}-gd \ + php${PHP_VERSION}-mysql php${PHP_VERSION}-ldap php${PHP_VERSION}-dom php${PHP_VERSION}-zip php${PHP_VERSION}-ldap \ + php${PHP_VERSION}-fpm php${PHP_VERSION}-mysql php${PHP_VERSION}-mbstring php${PHP_VERSION}-bz2 \ php-dompdf \ composer curl +RUN update-alternatives --install /usr/bin/php php /usr/bin/php${PHP_VERSION} 99 --force + RUN apt install -y \ - apache2 apache2-utils libapache2-mod-php7.4 + apache2 apache2-utils libapache2-mod-php${PHP_VERSION} RUN a2enmod rewrite alias authz_user ssl -RUN apt install -y \ - tesseract-ocr - -ADD start.sh /start.sh - -ADD entrypoint.sh /entrypoint.sh - RUN addgroup --gid ${GID} tikiwiki RUN adduser \ @@ -52,10 +55,16 @@ USER tikiwiki RUN git clone -b ${BRANCH} https://gitlab.com/tikiwiki/tiki.git . +RUN bash setup.sh -n composer + USER root RUN mkdir -p files/forums && chmod -R 777 files/forums +ADD start.sh /start.sh + +ADD entrypoint.sh /entrypoint.sh + VOLUME ["/uploads"] ENTRYPOINT [ "/bin/sh", "/entrypoint.sh" ] diff --git a/docker-compose.yml b/docker-compose.yml index a15e436d..78d8b8be 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,7 @@ services: environment: - PMA_ARBITRARY=1 tikiwiki: - image: registry.audio-lab.org/tikiwiki:latest + #image: registry.audio-lab.org/tikiwiki:latest build: context: . args: @@ -30,23 +30,3 @@ services: MYSQL_USER: tiki MYSQL_PASSWORD: wiki MYSQL_HOST: 172.16.0.240 - manticore: - container_name: manticore - image: manticoresearch/manticore - environment: - - EXTRA=1 - restart: always - ports: - - 172.16.0.240:9306:9306 - - 172.16.0.240:9308:9308 - ulimits: - nproc: 65535 - nofile: - soft: 65535 - hard: 65535 - memlock: - soft: -1 - hard: -1 - volumes: - - ./manticore:/var/lib/manticore - - /tmp:/tmp diff --git a/docker-compose.yml.kibana b/docker-compose.yml.kibana new file mode 100644 index 00000000..272ca87b --- /dev/null +++ b/docker-compose.yml.kibana @@ -0,0 +1,49 @@ +version: '3' + +services: + phpmyadmin: + image: phpmyadmin + restart: always + ports: + - 8080:80 + environment: + - PMA_ARBITRARY=1 + tikiwiki: + #image: registry.audio-lab.org/tikiwiki:latest + build: + context: . + args: + - BRANCH=25.x + - UID=1000 + - GID=1000 + ports: + - 443:443 + - 80:80 + volumes: + - ./uploads:/var/www/html/uploads + - /tmp:/tmp + - ./conf/envvars:/etc/apache2/envvars:ro + - ./conf/default-ssl.conf:/etc/apache2/sites-available/000-default.conf:ro + restart: always + environment: + MYSQL_DATABASE: dockertiki + MYSQL_USER: tiki + MYSQL_PASSWORD: wiki + MYSQL_HOST: 172.16.0.240 + elasticsearch: + container_name: es + image: docker.elastic.co/elasticsearch/elasticsearch:8.7.0 + environment: + - xpack.security.enabled=false + - "discovery.type=single-node" + ports: + - 9200:9200 + kibana: + container_name: kb + image: docker.elastic.co/kibana/kibana:8.7.0 + environment: + - ELASTICSEARCH_HOSTS=http://es-container:9200 + depends_on: + - elasticsearch + ports: + - 5601:5601 diff --git a/docker-compose.yml.manticore b/docker-compose.yml.manticore new file mode 100644 index 00000000..a15e436d --- /dev/null +++ b/docker-compose.yml.manticore @@ -0,0 +1,52 @@ +version: '3' + +services: + phpmyadmin: + image: phpmyadmin + restart: always + ports: + - 8080:80 + environment: + - PMA_ARBITRARY=1 + tikiwiki: + image: registry.audio-lab.org/tikiwiki:latest + build: + context: . + args: + - BRANCH=25.x + - UID=1000 + - GID=1000 + ports: + - 443:443 + - 80:80 + volumes: + - ./uploads:/var/www/html/uploads + - /tmp:/tmp + - ./conf/envvars:/etc/apache2/envvars:ro + - ./conf/default-ssl.conf:/etc/apache2/sites-available/000-default.conf:ro + restart: always + environment: + MYSQL_DATABASE: dockertiki + MYSQL_USER: tiki + MYSQL_PASSWORD: wiki + MYSQL_HOST: 172.16.0.240 + manticore: + container_name: manticore + image: manticoresearch/manticore + environment: + - EXTRA=1 + restart: always + ports: + - 172.16.0.240:9306:9306 + - 172.16.0.240:9308:9308 + ulimits: + nproc: 65535 + nofile: + soft: 65535 + hard: 65535 + memlock: + soft: -1 + hard: -1 + volumes: + - ./manticore:/var/lib/manticore + - /tmp:/tmp diff --git a/entrypoint.sh b/entrypoint.sh index 5592d324..0f5c4602 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -4,33 +4,37 @@ set -e echo "Starting Tikiwiki" -bash setup.sh -n composer - install() { echo "Install" - echo $MYSQL_HOST $MYSQL_USER $MYSQL_PASSWORD $MYSQL_DATABASE - php7.4 console.php database:configure --host $MYSQL_HOST $MYSQL_USER $MYSQL_PASSWORD $MYSQL_DATABASE - php7.4 console.php database:install - php7.4 console.php installer:lock + sudo -u tikiwiki php console.php database:configure --host $MYSQL_HOST $MYSQL_USER $MYSQL_PASSWORD $MYSQL_DATABASE + sudo -u tikiwiki php console.php database:install + sudo -u tikiwiki php console.php installer:lock + install_packages update } +install_packages() { + sudo -u tikiwiki php console.php package:install TikiManager + sudo -u tikiwiki php console.php package:install PDFjsViewer + sudo -u tikiwiki php console.php package:install MediaAlchemyst + sudo -u tikiwiki php console.php package:install diagram + sudo -u tikiwiki php console.php package:install mPDF + sudo -u tikiwiki php console.php package:install Lozad + sudo -u tikiwiki php console.php package:install FakerPHP + sudo -u tikiwiki php console.php package:install Expose + sudo -u tikiwiki php console.php package:install CasperJS + sudo -u tikiwiki php console.php package:install PhpReadability + sudo -u tikiwiki php console.php package:install WebODF + sudo -u tikiwiki php console.php package:install TesseractOCR + sudo -u tikiwiki php console.php package:install FullCalendarScheduler +} + update() { echo "Update" - php7.4 console.php database:update - php7.4 console.php package:install TikiManager - php7.4 console.php package:install PDFjsViewer - php7.4 console.php package:install MediaAlchemyst - php7.4 console.php package:install diagram - php7.4 console.php package:install mPDF - php7.4 console.php package:install Lozad - php7.4 console.php package:install FakerPHP - php7.4 console.php package:install Expose - php7.4 console.php package:install CasperJS - php7.4 console.php package:update + sudo -u tikiwiki php console.php database:update + sudo -u tikiwiki php console.php package:update } [ -s ./db/local.php ] && update || install - exec $@ diff --git a/install_packages.sh b/install_packages.sh new file mode 100755 index 00000000..20464ab1 --- /dev/null +++ b/install_packages.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e + +echo "Install Packages Tikiwiki" + +cd /var/www/html/tiki/ + +sudo -u tikiwiki php console.php package:install TikiManager +sudo -u tikiwiki php console.php package:install PDFjsViewer +sudo -u tikiwiki php console.php package:install MediaAlchemyst +sudo -u tikiwiki php console.php package:install diagram +sudo -u tikiwiki php console.php package:install mPDF +sudo -u tikiwiki php console.php package:install Lozad +sudo -u tikiwiki php console.php package:install FakerPHP +sudo -u tikiwiki php console.php package:install Expose +sudo -u tikiwiki php console.php package:install CasperJS diff --git a/server.py b/server.py new file mode 100755 index 00000000..8fb5847f --- /dev/null +++ b/server.py @@ -0,0 +1,29 @@ +# Python 3 server example +from http.server import BaseHTTPRequestHandler, HTTPServer +import time + +hostName = "localhost" +serverPort = 80 + +class MyServer(BaseHTTPRequestHandler): + def do_GET(self): + self.send_response(200) + self.send_header("Content-type", "text/html") + self.end_headers() + self.wfile.write(bytes("Instalando Tikiwiki", "utf-8")) + self.wfile.write(bytes("", "utf-8")) + self.wfile.write(bytes("

Estamos instalado y configurando tu Tikiwiki.

", "utf-8")) + self.wfile.write(bytes("

Espera unos segundos.

", "utf-8")) + self.wfile.write(bytes("", "utf-8")) + +if __name__ == "__main__": + webServer = HTTPServer((hostName, serverPort), MyServer) + print("Server started http://%s:%s" % (hostName, serverPort)) + + try: + webServer.serve_forever() + except KeyboardInterrupt: + pass + + webServer.server_close() + print("Server stopped.")