Sign inSign up

skaas/php

By skaas

Updated over 2 years ago

This is a base image for building php composer based services in SKaaS

Image
0

3.3K

skaas/php repository overview

SKaaS - PHP image for Lumen

Web server Docker file

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

Usage
FROM skaas/php:v8.2

ARG VERSION="undefined"
ARG COMMIT="undefined"

LABEL version=$VERSION commit=$COMMIT service="webservice"

Worker Docker file

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

Usage
FROM skaas/php:v8.2-worker

ARG VERSION="undefined"
ARG COMMIT="undefined"

LABEL version=$VERSION commit=$COMMIT service="worker"

DevContainer Docker file

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
Usage
{
	"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}"]
}

Tag summary

Content type

Image

Digest

Size

188.4 MB

Last updated

over 6 years ago

docker pull skaas/php