CI envrionment handling

This commit is contained in:
Olusesan Ameye
2025-08-27 04:44:52 +00:00
parent 1f950d6793
commit 2d6a37297e
9 changed files with 30 additions and 12 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
CONFIG_NAME='This is development';
CONFIG_NAME='This is NOT development. It is not how envrionment works in CodeIgniter!'
CONTAINER_PORT=8094
UID=1000
+2 -1
View File
@@ -1,6 +1,7 @@
CONFIG_NAME='This is live';
CONFIG_NAME='This is live'
CONTAINER_PORT=8094
UID=1000
CI_ENVIRONMENT=production
SERVER_PATH = production
+2
View File
@@ -23,3 +23,5 @@ ini_set('display_errors', '0');
| release of the framework.
*/
defined('CI_DEBUG') || define('CI_DEBUG', false);
$_ENV['CONFIG_NAME']='<h1>I beleive you are doing CI envrionment handling wrong. You should define CI_ENVIRONMENT environment variable and utilize the respective app/Config/Boot/...php file</h1><br/>';
+2 -2
View File
@@ -11,8 +11,8 @@ class Home extends BaseController
public function what_env(): string
{
$curr_env = $_ENV['CONFIG_NAME'];
echo $curr_env;
$curr_env = env('CONFIG_NAME','undefined?');
echo env('CI_ENVIRONMENT');
return $curr_env;
}
public function provision(): string
+1 -1
View File
@@ -9,7 +9,7 @@ services:
environment:
- APACHE_RUN_USER=#${UID}
- APACHE_RUN_GROUP=#${UID}
#- CI_ENV
- CI_ENVIRONMENT=${CI_ENVIRONMENT:-development}
- CI_CONFIG
restart: unless-stopped
image: registry.chiefsoft.net/mermsprovision:latest
+5 -1
View File
@@ -8,4 +8,8 @@
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
# pass system env CI_ENVIRONMENT to Apache
PassEnv CI_ENVIRONMENT
</VirtualHost>
+14 -6
View File
@@ -1,31 +1,39 @@
# Use an official PHP runtime as a base image
FROM php:8.1-apache
# Build args
ARG CI_ENVIRONMENT
ENV CI_ENVIRONMENT=$CI_ENVIRONMENT
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
#RUN apt-get update
#RUN apt-get update && apt-get install --yes --force-yes libc-client-dev libkrb5-dev
RUN apt-get update && apt-cache search libc-client
RUN apt-get update && \
apt-get install --yes --force-yes \
cron g++ gettext libicu-dev openssl \
libc-client-dev libkrb5-dev \
libkrb5-dev \
libxml2-dev libfreetype6-dev \
libgd-dev libmcrypt-dev bzip2 \
libbz2-dev libtidy-dev libcurl4-openssl-dev \
libz-dev libmemcached-dev libxslt-dev git-core libpq-dev \
libzip4 libzip-dev libwebp-dev
libzip5 libzip-dev libwebp-dev
# libc-client-dev => libc-client2007e-dev
# PHP Configuration
RUN docker-php-ext-install bcmath bz2 calendar dba exif gettext iconv intl soap tidy xsl zip&&\
docker-php-ext-install mysqli pgsql pdo pdo_mysql pdo_pgsql &&\
docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp &&\
docker-php-ext-install gd &&\
docker-php-ext-configure imap --with-kerberos --with-imap-ssl &&\
docker-php-ext-install imap &&\
docker-php-ext-configure hash --with-mhash &&\
pecl install xdebug && docker-php-ext-enable xdebug &&\
pecl install mongodb && docker-php-ext-enable mongodb &&\
pecl install redis && docker-php-ext-enable redis
# docker-php-ext-configure imap --with-kerberos --with-imap-ssl &&\
# docker-php-ext-install imap &&\
# 2. set up document root for apache
COPY docker/apache/000-default.conf /etc/apache2/sites-available/000-default.conf
@@ -56,4 +64,4 @@ RUN mkdir -p /var/www/html/ANSIBLE && \
RUN composer install
EXPOSE 80
EXPOSE 80
+2
View File
@@ -1,6 +1,8 @@
# Disable directory browsing
Options -Indexes
PassEnv CI_ENVIRONMENT
# ----------------------------------------------------------------------
# Rewrite engine
# ----------------------------------------------------------------------
+1
View File
@@ -5,6 +5,7 @@
* CHECK PHP VERSION
*---------------------------------------------------------------
*/
var_dump(getenv('CI_ENVIRONMENT'));
$minPhpVersion = '8.1'; // If you update this, don't forget to update `spark`.
if (version_compare(PHP_VERSION, $minPhpVersion, '<')) {