Alex Trofimov 1 rok temu
rodzic
commit
896531cfa1

+ 49 - 0
.vscode/launch.json

@@ -0,0 +1,49 @@
+{
+    "version": "0.2.0",
+    "configurations": [
+        {
+            "name": "Listen for Xdebug",
+            "type": "php",
+            "request": "launch",
+            "port": 9003,
+            "pathMappings": {
+                "/opt/una": "${workspaceFolder}"
+            },
+            "log": true
+        }/*,
+        {
+            "name": "Launch currently open script",
+            "type": "php",
+            "request": "launch",
+            "program": "${file}",
+            "cwd": "${fileDirname}",
+            "port": 0,
+            "runtimeArgs": [
+                "-dxdebug.start_with_request=yes"
+            ],
+            "env": {
+                "XDEBUG_MODE": "debug,develop",
+                "XDEBUG _CONFIG": "client_port=${port}"
+            }
+        },
+        {
+            "name": "Launch Built-in web server",
+            "type": "php",
+            "request": "launch",
+            "runtimeArgs": [
+                "-dxdebug.mode=debug",
+                "-dxdebug.start_with_request=yes",
+                "-S",
+                "localhost:0"
+            ],
+            "program": "",
+            "cwd": "${workspaceRoot}",
+            "port": 9003,
+            "serverReadyAction": {
+                "pattern": "Development Server \\(http://localhost:([0-9]+)\\) started",
+                "uriFormat": "http://localhost:%s",
+                "action": "openExternally"
+            }
+        }*/
+    ]
+}

+ 14 - 0
.vscode/settings.json

@@ -0,0 +1,14 @@
+{
+    "files.exclude": {
+        "upgrade": true,
+        "**/updates": true
+    },
+    "search.exclude": {
+        "upgrade": true,
+        "**/updates": true
+    },
+    "files.watcherExclude": {
+        "upgrade": true,
+        "**/updates": true
+    }
+}

+ 30 - 8
docker-compose.yml

@@ -1,5 +1,6 @@
 version: '3'
 services:
+
     web:
         image: nginx:latest
         ports:
@@ -7,8 +8,11 @@ services:
         volumes:
             - ./scripts/docker-compose/nginx.conf:/etc/nginx/conf.d/default.conf
             - ./:/opt/una
-        depends_on:
-            - php
+        networks:
+            unanet:
+                aliases:
+                    - example.local
+
     php:
         build:
             context: .
@@ -16,17 +20,23 @@ services:
         volumes:
             - ./scripts/docker-compose/php.ini:/usr/local/etc/php/php.ini
             - ./:/opt/una
-        depends_on:
-            - mysql
+        extra_hosts:
+            - "host.docker.internal:host-gateway"
+        networks:
+            - unanet
+
     cron:
         build:
             context: .
             dockerfile: scripts/docker-compose/Cron.Dockerfile
         volumes:
-            - ./scripts/docker-compose/php.ini:/usr/local/etc/php/php.ini
+            - ./scripts/docker-compose/php.ini:/usr/local/etc/php/php-cron.ini
             - ./:/opt/una
-        depends_on:
-            - mysql
+        extra_hosts:
+            - "host.docker.internal:host-gateway"
+        networks:
+            - unanet
+
     mysql:
         image: mariadb:latest
         environment:
@@ -40,11 +50,17 @@ services:
             - ./scripts/docker-compose/mysqld.cnf:/etc/mysql/conf.d/mysqld.cnf
         ports:
             - 3306:3306
+        networks:
+            - unanet
+
     jot:
         image: unaio/jot-server:latest
         restart: always
         ports:
-            - 5000:5000
+            - 5555:5000
+        networks:
+            - unanet
+
     phpmyadmin:
         image: phpmyadmin
         restart: always
@@ -59,5 +75,11 @@ services:
             - ./scripts/docker-compose/phpmyadmin.inc.php:/etc/phpmyadmin/config.user.inc.php
         depends_on:
             - mysql
+        networks:
+            - unanet
+
 volumes:
     mysqldata: {}
+
+networks:
+  unanet:

+ 3 - 2
scripts/docker-compose/Cron.Dockerfile

@@ -1,6 +1,7 @@
 FROM php:8.3-cli
 
 RUN apt-get update && apt-get install -y \
+        wget \
         cron \
         libfreetype6-dev \
         libjpeg62-turbo-dev \
@@ -12,11 +13,11 @@ RUN apt-get update && apt-get install -y \
         unzip \
     && docker-php-ext-configure gd --with-freetype --with-jpeg \
     && docker-php-ext-install -j$(nproc) gd \
-    && docker-php-ext-install -j$(nproc) pdo pdo_mysql \
+    && docker-php-ext-install -j$(nproc) pdo pdo_mysql mysqli \
     && docker-php-ext-install -j$(nproc) zip exif opcache iconv mbstring \
 #    && pecl install xdebug && docker-php-ext-enable xdebug \
 #    && pecl install mcrypt-1.0.4 && docker-php-ext-enable mcrypt \
-    && pecl install imagick-3.7.0 && docker-php-ext-enable imagick
+    && pecl install imagick-3.8.0 && docker-php-ext-enable imagick
 
 RUN echo "* * * * * /usr/local/bin/php -c /usr/local/etc/php /opt/una/periodic/cron.php 2>&1 | sed -e \"s/\(.*\)/[\`date\`] \1/\" >>/var/log/unacron.log" > /tmp/crontab && crontab /tmp/crontab && rm -f /tmp/crontab
 

+ 3 - 3
scripts/docker-compose/PHP.Dockerfile

@@ -14,7 +14,7 @@ RUN apt-get update && apt-get install -y \
     && docker-php-ext-install -j$(nproc) gd \
     && docker-php-ext-install -j$(nproc) pdo pdo_mysql mysqli \
     && docker-php-ext-install -j$(nproc) zip exif opcache iconv mbstring \
-#    && pecl install xdebug && docker-php-ext-enable xdebug \
-#    && pecl install mcrypt-1.0.3 && docker-php-ext-enable mcrypt \
-    && pecl install imagick-3.7.0 && docker-php-ext-enable imagick
+    && pecl install xdebug && docker-php-ext-enable xdebug \
+#    && pecl install mcrypt-1.0.4 && docker-php-ext-enable mcrypt \
+    && pecl install imagick-3.8.0 && docker-php-ext-enable imagick
 

+ 0 - 21
scripts/docker-compose/PHP7.Dockerfile

@@ -1,21 +0,0 @@
-FROM php:7.4-fpm
-
-RUN apt-get update && apt-get install -y \
-        git \
-        cron \
-        libfreetype6-dev \
-        libjpeg62-turbo-dev \
-        libmcrypt-dev \
-        libpng-dev \
-        libonig-dev \
-        libmagickwand-dev \
-        libzip-dev \
-        unzip \
-    && docker-php-ext-configure gd --with-freetype --with-jpeg \
-    && docker-php-ext-install -j$(nproc) gd \
-    && docker-php-ext-install -j$(nproc) pdo pdo_mysql mysqli \
-    && docker-php-ext-install -j$(nproc) zip exif opcache iconv mbstring \
-#    && pecl install xdebug && docker-php-ext-enable xdebug \
-#    && pecl install mcrypt-1.0.3 && docker-php-ext-enable mcrypt \
-    && pecl install imagick-3.7.0 && docker-php-ext-enable imagick
-

+ 22 - 0
scripts/docker-compose/php-cron.ini

@@ -0,0 +1,22 @@
+memory_limit=-1
+upload_max_filesize=200M
+post_max_size=200M
+html_errors = On
+error_prepend_string = "<pre style='white-space: pre-line'>"
+error_append_string = "</pre>"
+max_input_vars = 5000
+error_log = /var/log/php.log
+variables_order=GPCSE
+
+[opcache]
+opcache.enable=1
+opcache.revalidate_freq=0
+opcache.validate_timestamps=1
+opcache.max_accelerated_files=100000
+opcache.memory_consumption=72
+opcache.max_wasted_percentage=20
+opcache.interned_strings_buffer=16
+opcache.fast_shutdown=1
+
+[xdebug]
+xdebug.mode = develop

+ 7 - 1
scripts/docker-compose/php.ini

@@ -1,4 +1,4 @@
-memory_limit=-1
+memory_limit=192M
 upload_max_filesize=200M
 post_max_size=200M
 html_errors = On
@@ -17,3 +17,9 @@ opcache.memory_consumption=72
 opcache.max_wasted_percentage=20
 opcache.interned_strings_buffer=16
 opcache.fast_shutdown=1
+
+[xdebug]
+xdebug.mode = debug
+xdebug.start_with_request = yes
+xdebug.client_host = host.docker.internal
+