This is a base image for building php composer based services in SKaaS
3.3K
FROM php:8.2-apache
LABEL vendor="skaas"
ENV LANG=C.UTF-8 DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -y git unzip zlib1g-dev libicu-dev libzip-dev libxml2-dev libpng-dev \
&& pecl install channel://pecl.php.net/xmlrpc-1.0.0RC3 xmlrpc \
&& docker-php-ext-install pdo_mysql zip intl gd \
&& docker-php-ext-enable xmlrpc \
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
&& a2enmod rewrite \
&& awk '/<Directory \/var\/www\/>/,/AllowOverride None/{sub("None", "All",$0)}{print}' /etc/apache2/apache2.conf > apache2.conf.temp \
&& mv apache2.conf.temp /etc/apache2/apache2.conf \
&& echo "\nServerName SkaasService\nServerSignature Off\nServerTokens Prod\n" >> /etc/apache2/apache2.conf \
&& sed -e 's/DocumentRoot \/var\/www\/html/DocumentRoot \/var\/www\/html\/public/g' -i /etc/apache2/sites-enabled/000-default.conf \
&& cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini \
&& echo "[PHP]\nexpose_php = Off\nmax_execution_time = 60\nmemory_limit = 256M\n\n[Date]\ndate.timezone = Asia/Kolkata\n\n[opcache]\nopcache.enable=1\nopcache.memory_consumption=256\nopcache.interned_strings_buffer=64\nopcache.max_accelerated_files=32531\nopcache.validate_timestamps=0\n" > /usr/local/etc/php/conf.d/overrides.ini \
&& rm -rf /tmp/* /var/list/apt/* /var/lib/apt/lists/* \
&& apt-get clean
ONBUILD COPY composer.json composer.lock /var/www/html/
ONBUILD RUN composer install --no-autoloader --no-dev --profile
ONBUILD COPY --chown=www-data:www-data . /var/www/html
ONBUILD RUN composer dump-autoload --optimize
FROM skaas/php:v8.2
ARG VERSION="undefined"
ARG COMMIT="undefined"
LABEL version=$VERSION commit=$COMMIT service="webservice"
FROM php:8.2-cli
LABEL vendor="skaas"
ENV LANG=C.UTF-8 DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -y git unzip zlib1g-dev libicu-dev libzip-dev libxml2-dev libpng-dev \
&& docker-php-ext-install pdo_mysql zip intl gd \
&& pecl install channel://pecl.php.net/xmlrpc-1.0.0RC3 xmlrpc \
&& docker-php-ext-enable xmlrpc \
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
&& cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini \
&& echo "[PHP]\nexpose_php = Off\nmax_execution_time = 0\nmemory_limit = 1024M\n\n[Date]\ndate.timezone = Asia/Kolkata\n\n[opcache]\nopcache.enable=1\nopcache.memory_consumption=256\nopcache.interned_strings_buffer=64\nopcache.max_accelerated_files=32531\nopcache.validate_timestamps=0\n" > /usr/local/etc/php/conf.d/overrides.ini \
&& rm -rf /tmp/* /var/list/apt/* /var/lib/apt/lists/* \
&& apt-get clean
ONBUILD WORKDIR /var/www/html/
ONBUILD COPY composer.json composer.lock /var/www/html/
ONBUILD RUN composer install --no-autoloader --no-dev --profile
ONBUILD COPY --chown=www-data:www-data . /var/www/html
ONBUILD RUN composer dump-autoload --optimize
ONBUILD CMD php artisan queue:listen --timeout=3600
FROM skaas/php:v8.2-worker
ARG VERSION="undefined"
ARG COMMIT="undefined"
LABEL version=$VERSION commit=$COMMIT service="worker"
FROM mcr.microsoft.com/vscode/devcontainers/php:8.2
RUN apt-get update \
&& apt-get install -y unzip zlib1g-dev libicu-dev libzip-dev libxml2-dev libpng-dev \
&& docker-php-ext-install pdo_mysql zip intl gd \
&& pecl install channel://pecl.php.net/xmlrpc-1.0.0RC3 xmlrpc \
&& docker-php-ext-enable xmlrpc \
&& a2enmod rewrite \
&& awk '/<Directory \/var\/www\/>/,/AllowOverride None/{sub("None", "All",$0)}{print}' /etc/apache2/apache2.conf > apache2.conf.temp \
&& mv apache2.conf.temp /etc/apache2/apache2.conf \
&& echo "\nServerName SkaasService\nServerSignature Off\nServerTokens Prod\n" >> /etc/apache2/apache2.conf \
&& sed -e 's/DocumentRoot \/var\/www\/html/DocumentRoot \/var\/www\/html\/public/g' -i /etc/apache2/sites-enabled/000-default.conf \
&& cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini \
&& echo "[PHP]\nexpose_php = Off\nmax_execution_time = 60\nmemory_limit = 256M\n\n[Date]\ndate.timezone = Asia/Kolkata\n" > /usr/local/etc/php/conf.d/overrides.ini \
&& rm -rf /tmp/* /var/list/apt/* /var/lib/apt/lists/* \
&& apt-get clean \
&& rm -rf /var/www/html \
&& sed -e 's|client_port = 9000|client_port = 9999|g' -e 's|start_with_request = yes|start_with_request = trigger|g' -i /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "alias ll='ls -AFhg'\nalias l='ls -AF'\nalias c='clear'" >> /home/vscode/.bash_aliases
{
"name": "PHP",
"image": "skaas/php:v8.2-dev",
"customizations": {
"vscode": {
"settings": {
"php.validate.executablePath": "/usr/local/bin/php",
"launch": {
"configurations": [
{
"name": "Xdebug",
"type": "php",
"request": "launch",
"port": 9999,
"runtimeArgs": [
"-S",
"localhost:9000",
"-t",
"public/"
],
"program": "",
"cwd": "${workspaceRoot}",
"env": {
"XDEBUG_TRIGGER": "yes"
}
}
],
"compounds": []
}
},
"extensions": [
"xdebug.php-debug",
"bmewburn.vscode-intelephense-client"
]
}
},
"containerEnv": {"APP_PORT": "9000"},
"forwardPorts": [9000],
"portsAttributes": {
"9000": {
"label": "Application",
"onAutoForward": "silent"
},
"9999": {
"label": "XDebug",
"onAutoForward": "ignore"
}
},
"postCreateCommand": "sudo chmod a+x \"$(pwd)\" && sudo ln -s \"$(pwd)\" /var/www/html && sudo sed -e 's/:80/:'${APP_PORT}'/g' -i /etc/apache2/sites-enabled/000-default.conf && (echo \"Listen ${APP_PORT}\" | sudo tee /etc/apache2/ports.conf)",
"remoteUser": "vscode",
"runArgs": ["--name", "devcontainer_${containerWorkspaceFolderBasename}"]
}
Content type
Image
Digest
Size
188.4 MB
Last updated
over 6 years ago
docker pull skaas/php