From e402b0caab32b9a766f3f9b9a6794f2e54681c62 Mon Sep 17 00:00:00 2001
From: Anton Vasiliev <1695147@gmail.com>
Date: Sat, 23 Dec 2023 08:47:08 +0000
Subject: [PATCH] #16477 - Remove PHP7.4 docker image and add PHP8.3

---
 docker-compose-local.yml       | 16 ++++++++--------
 docker-compose.yml             | 18 ++++++++++--------
 docker/{7.4 => 8.3}/.bashrc    |  0
 docker/{7.4 => 8.3}/Dockerfile | 24 ++++++++++++++----------
 docker/{7.4 => 8.3}/extra.ini  |  0
 5 files changed, 32 insertions(+), 26 deletions(-)
 rename docker/{7.4 => 8.3}/.bashrc (100%)
 rename docker/{7.4 => 8.3}/Dockerfile (85%)
 rename docker/{7.4 => 8.3}/extra.ini (100%)

diff --git a/docker-compose-local.yml b/docker-compose-local.yml
index 1f1febc49e..f66bdb1455 100644
--- a/docker-compose-local.yml
+++ b/docker-compose-local.yml
@@ -3,14 +3,6 @@
 version: '3'
 
 services:
-  cphalcon-7.4:
-    container_name: cphalcon-7.4
-    hostname: cphalcon-74
-    build: docker/7.4
-    working_dir: /srv
-    volumes:
-      - .:/srv
-
   cphalcon-8.0:
     container_name: cphalcon-8.0
     hostname: cphalcon-80
@@ -35,6 +27,14 @@ services:
     volumes:
       - .:/srv
 
+  cphalcon-8.3:
+    container_name: cphalcon-8.3
+    hostname: cphalcon-83
+    build: docker/8.3
+    working_dir: /srv
+    volumes:
+      - .:/srv
+
   mysql:
     container_name: cphalcon-mysql
     image: mysql:5.7
diff --git a/docker-compose.yml b/docker-compose.yml
index 37a624d336..a4fdbcb2f9 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -3,14 +3,6 @@
 version: '3'
 
 services:
-  cphalcon-7.4:
-    container_name: cphalcon-7.4
-    hostname: cphalcon-74
-    build: docker/7.4
-    working_dir: /srv
-    volumes:
-      - .:/srv
-
   cphalcon-8.0:
     container_name: cphalcon-8.0
     hostname: cphalcon-80
@@ -24,6 +16,8 @@ services:
     hostname: cphalcon-81
     build: docker/8.1
     working_dir: /srv
+    ports:
+      - "9501:9501"
     volumes:
       - .:/srv
 
@@ -35,6 +29,14 @@ services:
     volumes:
       - .:/srv
 
+  cphalcon-8.3:
+    container_name: cphalcon-8.3
+    hostname: cphalcon-83
+    build: docker/8.3
+    working_dir: /srv
+    volumes:
+      - .:/srv
+
   mysql:
     container_name: cphalcon-mysql
     image: mysql:5.7
diff --git a/docker/7.4/.bashrc b/docker/8.3/.bashrc
similarity index 100%
rename from docker/7.4/.bashrc
rename to docker/8.3/.bashrc
diff --git a/docker/7.4/Dockerfile b/docker/8.3/Dockerfile
similarity index 85%
rename from docker/7.4/Dockerfile
rename to docker/8.3/Dockerfile
index 939ff64cd8..1b2c3f7b44 100644
--- a/docker/7.4/Dockerfile
+++ b/docker/8.3/Dockerfile
@@ -1,5 +1,5 @@
 FROM composer:latest as composer
-FROM php:7.4-fpm
+FROM php:8.3-fpm
 
 ADD ./extra.ini /usr/local/etc/php/conf.d/
 
@@ -8,7 +8,7 @@ ENV MY_USER="phalcon" \
 	MY_GROUP="phalcon" \
 	MY_UID="1000" \
 	MY_GID="1000" \
-	PHP_VERSION="7.4" \
+	PHP_VERSION="8.3" \
 	LANG=en_US.UTF-8 \
     LANGUAGE=en_US.UTF-8 \
     LC_ALL=en_US.UTF-8
@@ -38,17 +38,22 @@ RUN apt update -y && \
         nano \
         sudo \
         wget \
-        zip \
-        zlib1g
+        zip
+
+# Remove this RUN when imagick will be available via pecl
+RUN cd /opt && \
+    git clone https://github.com/Imagick/imagick.git && \
+    cd imagick && \
+    phpize && ./configure && \
+    make && make install
 
 # PECL Packages
-RUN pecl install \
-      redis \
-      igbinary \
+RUN pecl install -o -f redis && \
+    pecl install igbinary \
       msgpack \
       apcu \
       yaml \
-      imagick \
+#      imagick \
       memcached \
       zephir_parser
 
@@ -79,12 +84,11 @@ RUN docker-php-ext-install \
 
 # Install PHP extensions
 RUN docker-php-ext-enable \
-        gettext \
         redis \
         igbinary \
         msgpack \
         apcu \
-        imagick \
+#        imagick \
         yaml \
         memcached \
         zephir_parser
diff --git a/docker/7.4/extra.ini b/docker/8.3/extra.ini
similarity index 100%
rename from docker/7.4/extra.ini
rename to docker/8.3/extra.ini