From a2ca93db83c1a99c9db80a0b9faa04f21fe2c1ea Mon Sep 17 00:00:00 2001 From: Thilina Pituwala Date: Mon, 25 May 2020 04:12:35 +0200 Subject: [PATCH] Icehrm docker worker and readme --- Dockerfile | 2 +- Dockerfile-prod | 2 +- Dockerfile-testing | 2 +- Dockerfile-worker | 32 ++++++++++ core/src/Utils/LogManager.php | 7 ++- docker-compose-prod.yaml | 7 +++ docker-compose.yaml | 7 +++ docker/development/config/config.php | 4 +- docker/prod/config/config.php | 4 +- docker/testing/config/config.php | 4 +- docker/worker/config/ice-cron | 1 + docker/worker/config/php.ini | 2 + readme.md | 92 ++++++++++++++++++---------- 13 files changed, 125 insertions(+), 41 deletions(-) create mode 100644 Dockerfile-worker create mode 100644 docker/worker/config/ice-cron create mode 100644 docker/worker/config/php.ini diff --git a/Dockerfile b/Dockerfile index 526de2bf..4995b9d5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,7 @@ RUN apk --no-cache add bind-tools # Install packages RUN apk --no-cache add php php-fpm php-opcache php-mysqli php-json php-openssl php-curl \ php-zlib php-xml php-phar php-intl php-dom php-xmlreader php-ctype php-session \ - php-mbstring php-gd nginx supervisor curl + php-mbstring php-gd php7-ldap nginx supervisor curl # Install xdebug RUN apk add --no-cache $PHPIZE_DEPS \ diff --git a/Dockerfile-prod b/Dockerfile-prod index 0092847d..b313710d 100644 --- a/Dockerfile-prod +++ b/Dockerfile-prod @@ -5,7 +5,7 @@ LABEL Maintainer="Thilina, Pituwala " \ # Install packages RUN apk --no-cache add php7 php7-fpm php7-opcache php7-mysqli php7-json php7-openssl php7-curl \ php7-zlib php7-xml php7-phar php7-intl php7-dom php7-xmlreader php7-ctype php7-session \ - php7-mbstring php7-gd nginx supervisor curl + php7-mbstring php7-gd php7-ldap nginx supervisor curl # Configure nginx COPY docker/prod/config/nginx.conf /etc/nginx/nginx.conf diff --git a/Dockerfile-testing b/Dockerfile-testing index cc967329..363f3bc6 100644 --- a/Dockerfile-testing +++ b/Dockerfile-testing @@ -5,7 +5,7 @@ LABEL Maintainer="Thilina, Pituwala " \ # Install packages RUN apk --no-cache add php7 php7-fpm php7-opcache php7-mysqli php7-json php7-openssl php7-curl \ php7-zlib php7-xml php7-phar php7-intl php7-dom php7-xmlreader php7-ctype php7-session \ - php7-mbstring php7-gd nginx supervisor curl + php7-mbstring php7-gd php7-ldap nginx supervisor curl # Configure nginx COPY docker/testing/config/nginx.conf /etc/nginx/nginx.conf diff --git a/Dockerfile-worker b/Dockerfile-worker new file mode 100644 index 00000000..5a8b80aa --- /dev/null +++ b/Dockerfile-worker @@ -0,0 +1,32 @@ +FROM alpine:3.11 +LABEL Maintainer="Thilina, Pituwala " \ + Description="IceHrm Docker Container with Nginx 1.16 & PHP-FPM 7.3 based on Alpine Linux." + +ARG EXE_ENV + +RUN apk upgrade --available + +RUN apk add --no-cache tini openrc busybox-initscripts + + +# Install packages +RUN apk --no-cache add php7 php7-opcache php7-mysqli php7-json php7-openssl php7-curl \ + php7-zlib php7-xml php7-phar php7-intl php7-dom php7-xmlreader php7-ctype php7-session \ + php7-mbstring php7-gd curl + +# Setup document root +RUN mkdir -p /var/www/html + +# Add application +WORKDIR /var/www/html +COPY ./app /var/www/html/app/ +COPY ./core /var/www/html/core/ +COPY ./web /var/www/html/web/ +COPY ./index.php /var/www/html/index.php +COPY ./docker/$EXE_ENV/config/config.php /var/www/html/app/config.php + + +COPY ./docker/worker/config/ice-cron /etc/crontabs/root +RUN rm /var/www/html/app/data/icehrm.log + +CMD /usr/sbin/crond -f -l 8 diff --git a/core/src/Utils/LogManager.php b/core/src/Utils/LogManager.php index bad21a85..d85acdab 100644 --- a/core/src/Utils/LogManager.php +++ b/core/src/Utils/LogManager.php @@ -22,10 +22,15 @@ class LogManager if (empty(self::$me)) { self::$me = new LogManager(); self::$me->log = new Logger(APP_NAME); - if (is_writable(ini_get('error_log'))) { + + if (defined('LOG_STDERR') && LOG_STDERR === '1') { + self::$me->log->pushHandler(new StreamHandler('php://stderr', LOG_LEVEL)); + } else if (is_writable(ini_get('error_log'))) { self::$me->log->pushHandler(new StreamHandler(ini_get('error_log'), LOG_LEVEL)); } elseif (is_writable(CLIENT_BASE_PATH.'data/app.log')) { self::$me->log->pushHandler(new StreamHandler(CLIENT_BASE_PATH.'data/app.log', LOG_LEVEL)); + } else { + self::$me->log->pushHandler(new StreamHandler('php://stderr', LOG_LEVEL)); } } return self::$me; diff --git a/docker-compose-prod.yaml b/docker-compose-prod.yaml index 8b6a02b9..78dc4717 100644 --- a/docker-compose-prod.yaml +++ b/docker-compose-prod.yaml @@ -21,6 +21,13 @@ services: - 8070:8070 volumes: - ./docker/prod/app_data:/var/www/html/app/data + + icehrm-worker: + build: + context: ./ + dockerfile: Dockerfile-worker + args: + - EXE_ENV=prod volumes: db_data: app_data: diff --git a/docker-compose.yaml b/docker-compose.yaml index c1edb604..1450b38c 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -19,5 +19,12 @@ services: - 8080:8080 volumes: - .:/var/www/html + + icehrm-worker-dev: + build: + context: ./ + dockerfile: Dockerfile-worker + args: + - EXE_ENV=development volumes: db_data: diff --git a/docker/development/config/config.php b/docker/development/config/config.php index 2d3e1612..5e3bdcbd 100644 --- a/docker/development/config/config.php +++ b/docker/development/config/config.php @@ -1,5 +1,5 @@