Latest commit

History

74 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

PHP Docker Image

PHP images based on the official PHP image, ready to use for modern web app and easily configurable via environment variables.

GitHub CI build status

Image variants

Image tags follow the same pattern as the official image.

There are 3 variants (PHP CLI, PHP-FPM, Nginx) based on Alpine and Debian to fit your specific use cases.

sunasteriskrnd/php:<version>-cli

This variant contains only the PHP CLI tool. Useful when you only need to run PHP code and not serving a web app. Example use cases are running cronjob commands or a background job worker.

sunasteriskrnd/php:<version>-fpm

This variant contains PHP-FPM. You will need a web server that support FastCGI protocol to server the web app. Use this variant if you've already had a web server running and want to scale only the PHP-FPM process.

PHP-FPM Healthcheck

Healthcheck for php-fpm image is included as a script php-fpm-healthcheck.

docker run --rm -d \
--health-cmd=php-fpm-healthcheck \
--health-interval=15s \
--health-timeout=3s \
--health-retries=3 \
sunasteriskrnd/php:fpm

Using docker-compose:

healthcheck:
test: ["CMD", "php-fpm-healthcheck"]interval: 15stimeout: 3sretries: 3

sunasteriskrnd/php:<version>-nginx

This variant is based on the fpm variant and comes with NGINX webserver to serve your PHP application.

Usage

Assuming you are in the directory containing your index.php file. Run this command to create a container to serve your application on port 80.

docker run -d -p 80:80 -v "$PWD":/var/www/html sunasteriskrnd/php:7.4-nginx

Using a Dockerfile

Assuming src/ is the directory containing your PHP code with an index.php file. You can use the nginx variant as base image for your image as below.

FROM sunasteriskrnd/php:7.4-nginx
COPY src/ /var/www/html/

Changing default nginx root

By default, the nginx image serves from /var/www/html directory. If you wish to change this location, specify the DOCUMENT_ROOT environment variable. For example, to change the root to /srv/application, your Dockerfile may look like this:

FROM sunasteriskrnd/php:7.4-nginx
ENV DOCUMENT_ROOT=/srv/application
COPY src/ /srv/application

sunasteriskrnd/php:<version>-<base>

Images are either based on Alpine or Debian. Supported versions are Alpine 3.14 and 3.15, Debian buster and bullseye.

For example, 8.1-cli-bullseye contains PHP 8.1 CLI based on Debian bullseye.

Tag aliases

All variants have some tag aliases beside the full tag in the format <version>-<variant>-<base>. Any component in the format can be omited and the default value for it will be used. Major, minor or patch version can be used for <version>.

For example, 8.1-cli-bullseye, 8.1-cli, 8.1, 8, cli all refers to the same image. See the docker-bake.hcl file for all tags available.

Currently, the default is PHP 8.1 CLI variant on Debian bullseye.

Configuration

Configuration via environment variables is supported. Environment variables prefixed with PHP. are set as PHP configurations. Environment variables prefixed with PHP_FPM. are set as configuration for the www pool (fpm and nginx variants only). For example:

docker run --rm -it \
-e PHP.memory_limit=256M \
-e PHP.post_max_size=64M \
-e PHP.upload_max_file_size=64M \
sunasteriskrnd/php
docker run --rm -it \
-e PHP.memory_limit=256M \
-e PHP_FPM.pm=ondemand \
-e PHP_FPM.pm.max_children=40 \
sunasteriskrnd/php:fpm

Installed extensions

The following extra PHP extensions are installed.

  • bcmath
  • gd (with JPEG support)
  • mysqli
  • opcache
  • pdo_mysql
  • pgsql
  • pdo_pgsql
  • redis
  • zip

You may install more extensions using the same method used with the official PHP image.

About

Ready-to-use PHP image for modern web app

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

74 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

PHP Docker Image

PHP images based on the official PHP image, ready to use for modern web app and easily configurable via environment variables.

GitHub CI build status

Image variants

Image tags follow the same pattern as the official image.

There are 3 variants (PHP CLI, PHP-FPM, Nginx) based on Alpine and Debian to fit your specific use cases.

sunasteriskrnd/php:<version>-cli

This variant contains only the PHP CLI tool. Useful when you only need to run PHP code and not serving a web app. Example use cases are running cronjob commands or a background job worker.

sunasteriskrnd/php:<version>-fpm

This variant contains PHP-FPM. You will need a web server that support FastCGI protocol to server the web app. Use this variant if you've already had a web server running and want to scale only the PHP-FPM process.

PHP-FPM Healthcheck

Healthcheck for php-fpm image is included as a script php-fpm-healthcheck.

docker run --rm -d \
--health-cmd=php-fpm-healthcheck \
--health-interval=15s \
--health-timeout=3s \
--health-retries=3 \
sunasteriskrnd/php:fpm

Using docker-compose:

healthcheck:
test: ["CMD", "php-fpm-healthcheck"]interval: 15stimeout: 3sretries: 3

sunasteriskrnd/php:<version>-nginx

This variant is based on the fpm variant and comes with NGINX webserver to serve your PHP application.

Usage

Assuming you are in the directory containing your index.php file. Run this command to create a container to serve your application on port 80.

docker run -d -p 80:80 -v "$PWD":/var/www/html sunasteriskrnd/php:7.4-nginx

Using a Dockerfile

Assuming src/ is the directory containing your PHP code with an index.php file. You can use the nginx variant as base image for your image as below.

FROM sunasteriskrnd/php:7.4-nginx
COPY src/ /var/www/html/

Changing default nginx root

By default, the nginx image serves from /var/www/html directory. If you wish to change this location, specify the DOCUMENT_ROOT environment variable. For example, to change the root to /srv/application, your Dockerfile may look like this:

FROM sunasteriskrnd/php:7.4-nginx
ENV DOCUMENT_ROOT=/srv/application
COPY src/ /srv/application

sunasteriskrnd/php:<version>-<base>

Images are either based on Alpine or Debian. Supported versions are Alpine 3.14 and 3.15, Debian buster and bullseye.

For example, 8.1-cli-bullseye contains PHP 8.1 CLI based on Debian bullseye.

Tag aliases

All variants have some tag aliases beside the full tag in the format <version>-<variant>-<base>. Any component in the format can be omited and the default value for it will be used. Major, minor or patch version can be used for <version>.

For example, 8.1-cli-bullseye, 8.1-cli, 8.1, 8, cli all refers to the same image. See the docker-bake.hcl file for all tags available.

Currently, the default is PHP 8.1 CLI variant on Debian bullseye.

Configuration

Configuration via environment variables is supported. Environment variables prefixed with PHP. are set as PHP configurations. Environment variables prefixed with PHP_FPM. are set as configuration for the www pool (fpm and nginx variants only). For example:

docker run --rm -it \
-e PHP.memory_limit=256M \
-e PHP.post_max_size=64M \
-e PHP.upload_max_file_size=64M \
sunasteriskrnd/php
docker run --rm -it \
-e PHP.memory_limit=256M \
-e PHP_FPM.pm=ondemand \
-e PHP_FPM.pm.max_children=40 \
sunasteriskrnd/php:fpm

Installed extensions

The following extra PHP extensions are installed.

  • bcmath
  • gd (with JPEG support)
  • mysqli
  • opcache
  • pdo_mysql
  • pgsql
  • pdo_pgsql
  • redis
  • zip

You may install more extensions using the same method used with the official PHP image.

About

Ready-to-use PHP image for modern web app

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

74 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

PHP Docker Image

PHP images based on the official PHP image, ready to use for modern web app and easily configurable via environment variables.

GitHub CI build status

Image variants

Image tags follow the same pattern as the official image.

There are 3 variants (PHP CLI, PHP-FPM, Nginx) based on Alpine and Debian to fit your specific use cases.

sunasteriskrnd/php:<version>-cli

This variant contains only the PHP CLI tool. Useful when you only need to run PHP code and not serving a web app. Example use cases are running cronjob commands or a background job worker.

sunasteriskrnd/php:<version>-fpm

This variant contains PHP-FPM. You will need a web server that support FastCGI protocol to server the web app. Use this variant if you've already had a web server running and want to scale only the PHP-FPM process.

PHP-FPM Healthcheck

Healthcheck for php-fpm image is included as a script php-fpm-healthcheck.

docker run --rm -d \
--health-cmd=php-fpm-healthcheck \
--health-interval=15s \
--health-timeout=3s \
--health-retries=3 \
sunasteriskrnd/php:fpm

Using docker-compose:

healthcheck:
test: ["CMD", "php-fpm-healthcheck"]interval: 15stimeout: 3sretries: 3

sunasteriskrnd/php:<version>-nginx

This variant is based on the fpm variant and comes with NGINX webserver to serve your PHP application.

Usage

Assuming you are in the directory containing your index.php file. Run this command to create a container to serve your application on port 80.

docker run -d -p 80:80 -v "$PWD":/var/www/html sunasteriskrnd/php:7.4-nginx

Using a Dockerfile

Assuming src/ is the directory containing your PHP code with an index.php file. You can use the nginx variant as base image for your image as below.

FROM sunasteriskrnd/php:7.4-nginx
COPY src/ /var/www/html/

Changing default nginx root

By default, the nginx image serves from /var/www/html directory. If you wish to change this location, specify the DOCUMENT_ROOT environment variable. For example, to change the root to /srv/application, your Dockerfile may look like this:

FROM sunasteriskrnd/php:7.4-nginx
ENV DOCUMENT_ROOT=/srv/application
COPY src/ /srv/application

sunasteriskrnd/php:<version>-<base>

Images are either based on Alpine or Debian. Supported versions are Alpine 3.14 and 3.15, Debian buster and bullseye.

For example, 8.1-cli-bullseye contains PHP 8.1 CLI based on Debian bullseye.

Tag aliases

All variants have some tag aliases beside the full tag in the format <version>-<variant>-<base>. Any component in the format can be omited and the default value for it will be used. Major, minor or patch version can be used for <version>.

For example, 8.1-cli-bullseye, 8.1-cli, 8.1, 8, cli all refers to the same image. See the docker-bake.hcl file for all tags available.

Currently, the default is PHP 8.1 CLI variant on Debian bullseye.

Configuration

Configuration via environment variables is supported. Environment variables prefixed with PHP. are set as PHP configurations. Environment variables prefixed with PHP_FPM. are set as configuration for the www pool (fpm and nginx variants only). For example:

docker run --rm -it \
-e PHP.memory_limit=256M \
-e PHP.post_max_size=64M \
-e PHP.upload_max_file_size=64M \
sunasteriskrnd/php
docker run --rm -it \
-e PHP.memory_limit=256M \
-e PHP_FPM.pm=ondemand \
-e PHP_FPM.pm.max_children=40 \
sunasteriskrnd/php:fpm

Installed extensions

The following extra PHP extensions are installed.

  • bcmath
  • gd (with JPEG support)
  • mysqli
  • opcache
  • pdo_mysql
  • pgsql
  • pdo_pgsql
  • redis
  • zip

You may install more extensions using the same method used with the official PHP image.

About

Ready-to-use PHP image for modern web app

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

74 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

PHP Docker Image

PHP images based on the official PHP image, ready to use for modern web app and easily configurable via environment variables.

GitHub CI build status

Image variants

Image tags follow the same pattern as the official image.

There are 3 variants (PHP CLI, PHP-FPM, Nginx) based on Alpine and Debian to fit your specific use cases.

sunasteriskrnd/php:<version>-cli

This variant contains only the PHP CLI tool. Useful when you only need to run PHP code and not serving a web app. Example use cases are running cronjob commands or a background job worker.

sunasteriskrnd/php:<version>-fpm

This variant contains PHP-FPM. You will need a web server that support FastCGI protocol to server the web app. Use this variant if you've already had a web server running and want to scale only the PHP-FPM process.

PHP-FPM Healthcheck

Healthcheck for php-fpm image is included as a script php-fpm-healthcheck.

docker run --rm -d \
--health-cmd=php-fpm-healthcheck \
--health-interval=15s \
--health-timeout=3s \
--health-retries=3 \
sunasteriskrnd/php:fpm

Using docker-compose:

healthcheck:
test: ["CMD", "php-fpm-healthcheck"]interval: 15stimeout: 3sretries: 3

sunasteriskrnd/php:<version>-nginx

This variant is based on the fpm variant and comes with NGINX webserver to serve your PHP application.

Usage

Assuming you are in the directory containing your index.php file. Run this command to create a container to serve your application on port 80.

docker run -d -p 80:80 -v "$PWD":/var/www/html sunasteriskrnd/php:7.4-nginx

Using a Dockerfile

Assuming src/ is the directory containing your PHP code with an index.php file. You can use the nginx variant as base image for your image as below.

FROM sunasteriskrnd/php:7.4-nginx
COPY src/ /var/www/html/

Changing default nginx root

By default, the nginx image serves from /var/www/html directory. If you wish to change this location, specify the DOCUMENT_ROOT environment variable. For example, to change the root to /srv/application, your Dockerfile may look like this:

FROM sunasteriskrnd/php:7.4-nginx
ENV DOCUMENT_ROOT=/srv/application
COPY src/ /srv/application

sunasteriskrnd/php:<version>-<base>

Images are either based on Alpine or Debian. Supported versions are Alpine 3.14 and 3.15, Debian buster and bullseye.

For example, 8.1-cli-bullseye contains PHP 8.1 CLI based on Debian bullseye.

Tag aliases

All variants have some tag aliases beside the full tag in the format <version>-<variant>-<base>. Any component in the format can be omited and the default value for it will be used. Major, minor or patch version can be used for <version>.

For example, 8.1-cli-bullseye, 8.1-cli, 8.1, 8, cli all refers to the same image. See the docker-bake.hcl file for all tags available.

Currently, the default is PHP 8.1 CLI variant on Debian bullseye.

Configuration

Configuration via environment variables is supported. Environment variables prefixed with PHP. are set as PHP configurations. Environment variables prefixed with PHP_FPM. are set as configuration for the www pool (fpm and nginx variants only). For example:

docker run --rm -it \
-e PHP.memory_limit=256M \
-e PHP.post_max_size=64M \
-e PHP.upload_max_file_size=64M \
sunasteriskrnd/php
docker run --rm -it \
-e PHP.memory_limit=256M \
-e PHP_FPM.pm=ondemand \
-e PHP_FPM.pm.max_children=40 \
sunasteriskrnd/php:fpm

Installed extensions

The following extra PHP extensions are installed.

  • bcmath
  • gd (with JPEG support)
  • mysqli
  • opcache
  • pdo_mysql
  • pgsql
  • pdo_pgsql
  • redis
  • zip

You may install more extensions using the same method used with the official PHP image.

About

Ready-to-use PHP image for modern web app

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

74 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

PHP Docker Image

PHP images based on the official PHP image, ready to use for modern web app and easily configurable via environment variables.

GitHub CI build status

Image variants

Image tags follow the same pattern as the official image.

There are 3 variants (PHP CLI, PHP-FPM, Nginx) based on Alpine and Debian to fit your specific use cases.

sunasteriskrnd/php:<version>-cli

This variant contains only the PHP CLI tool. Useful when you only need to run PHP code and not serving a web app. Example use cases are running cronjob commands or a background job worker.

sunasteriskrnd/php:<version>-fpm

This variant contains PHP-FPM. You will need a web server that support FastCGI protocol to server the web app. Use this variant if you've already had a web server running and want to scale only the PHP-FPM process.

PHP-FPM Healthcheck

Healthcheck for php-fpm image is included as a script php-fpm-healthcheck.

docker run --rm -d \
--health-cmd=php-fpm-healthcheck \
--health-interval=15s \
--health-timeout=3s \
--health-retries=3 \
sunasteriskrnd/php:fpm

Using docker-compose:

healthcheck:
test: ["CMD", "php-fpm-healthcheck"]interval: 15stimeout: 3sretries: 3

sunasteriskrnd/php:<version>-nginx

This variant is based on the fpm variant and comes with NGINX webserver to serve your PHP application.

Usage

Assuming you are in the directory containing your index.php file. Run this command to create a container to serve your application on port 80.

docker run -d -p 80:80 -v "$PWD":/var/www/html sunasteriskrnd/php:7.4-nginx

Using a Dockerfile

Assuming src/ is the directory containing your PHP code with an index.php file. You can use the nginx variant as base image for your image as below.

FROM sunasteriskrnd/php:7.4-nginx
COPY src/ /var/www/html/

Changing default nginx root

By default, the nginx image serves from /var/www/html directory. If you wish to change this location, specify the DOCUMENT_ROOT environment variable. For example, to change the root to /srv/application, your Dockerfile may look like this:

FROM sunasteriskrnd/php:7.4-nginx
ENV DOCUMENT_ROOT=/srv/application
COPY src/ /srv/application

sunasteriskrnd/php:<version>-<base>

Images are either based on Alpine or Debian. Supported versions are Alpine 3.14 and 3.15, Debian buster and bullseye.

For example, 8.1-cli-bullseye contains PHP 8.1 CLI based on Debian bullseye.

Tag aliases

All variants have some tag aliases beside the full tag in the format <version>-<variant>-<base>. Any component in the format can be omited and the default value for it will be used. Major, minor or patch version can be used for <version>.

For example, 8.1-cli-bullseye, 8.1-cli, 8.1, 8, cli all refers to the same image. See the docker-bake.hcl file for all tags available.

Currently, the default is PHP 8.1 CLI variant on Debian bullseye.

Configuration

Configuration via environment variables is supported. Environment variables prefixed with PHP. are set as PHP configurations. Environment variables prefixed with PHP_FPM. are set as configuration for the www pool (fpm and nginx variants only). For example:

docker run --rm -it \
-e PHP.memory_limit=256M \
-e PHP.post_max_size=64M \
-e PHP.upload_max_file_size=64M \
sunasteriskrnd/php
docker run --rm -it \
-e PHP.memory_limit=256M \
-e PHP_FPM.pm=ondemand \
-e PHP_FPM.pm.max_children=40 \
sunasteriskrnd/php:fpm

Installed extensions

The following extra PHP extensions are installed.

  • bcmath
  • gd (with JPEG support)
  • mysqli
  • opcache
  • pdo_mysql
  • pgsql
  • pdo_pgsql
  • redis
  • zip

You may install more extensions using the same method used with the official PHP image.

About

Ready-to-use PHP image for modern web app

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

74 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

PHP Docker Image

PHP images based on the official PHP image, ready to use for modern web app and easily configurable via environment variables.

GitHub CI build status

Image variants

Image tags follow the same pattern as the official image.

There are 3 variants (PHP CLI, PHP-FPM, Nginx) based on Alpine and Debian to fit your specific use cases.

sunasteriskrnd/php:<version>-cli

This variant contains only the PHP CLI tool. Useful when you only need to run PHP code and not serving a web app. Example use cases are running cronjob commands or a background job worker.

sunasteriskrnd/php:<version>-fpm

This variant contains PHP-FPM. You will need a web server that support FastCGI protocol to server the web app. Use this variant if you've already had a web server running and want to scale only the PHP-FPM process.

PHP-FPM Healthcheck

Healthcheck for php-fpm image is included as a script php-fpm-healthcheck.

docker run --rm -d \
--health-cmd=php-fpm-healthcheck \
--health-interval=15s \
--health-timeout=3s \
--health-retries=3 \
sunasteriskrnd/php:fpm

Using docker-compose:

healthcheck:
test: ["CMD", "php-fpm-healthcheck"]interval: 15stimeout: 3sretries: 3

sunasteriskrnd/php:<version>-nginx

This variant is based on the fpm variant and comes with NGINX webserver to serve your PHP application.

Usage

Assuming you are in the directory containing your index.php file. Run this command to create a container to serve your application on port 80.

docker run -d -p 80:80 -v "$PWD":/var/www/html sunasteriskrnd/php:7.4-nginx

Using a Dockerfile

Assuming src/ is the directory containing your PHP code with an index.php file. You can use the nginx variant as base image for your image as below.

FROM sunasteriskrnd/php:7.4-nginx
COPY src/ /var/www/html/

Changing default nginx root

By default, the nginx image serves from /var/www/html directory. If you wish to change this location, specify the DOCUMENT_ROOT environment variable. For example, to change the root to /srv/application, your Dockerfile may look like this:

FROM sunasteriskrnd/php:7.4-nginx
ENV DOCUMENT_ROOT=/srv/application
COPY src/ /srv/application

sunasteriskrnd/php:<version>-<base>

Images are either based on Alpine or Debian. Supported versions are Alpine 3.14 and 3.15, Debian buster and bullseye.

For example, 8.1-cli-bullseye contains PHP 8.1 CLI based on Debian bullseye.

Tag aliases

All variants have some tag aliases beside the full tag in the format <version>-<variant>-<base>. Any component in the format can be omited and the default value for it will be used. Major, minor or patch version can be used for <version>.

For example, 8.1-cli-bullseye, 8.1-cli, 8.1, 8, cli all refers to the same image. See the docker-bake.hcl file for all tags available.

Currently, the default is PHP 8.1 CLI variant on Debian bullseye.

Configuration

Configuration via environment variables is supported. Environment variables prefixed with PHP. are set as PHP configurations. Environment variables prefixed with PHP_FPM. are set as configuration for the www pool (fpm and nginx variants only). For example:

docker run --rm -it \
-e PHP.memory_limit=256M \
-e PHP.post_max_size=64M \
-e PHP.upload_max_file_size=64M \
sunasteriskrnd/php
docker run --rm -it \
-e PHP.memory_limit=256M \
-e PHP_FPM.pm=ondemand \
-e PHP_FPM.pm.max_children=40 \
sunasteriskrnd/php:fpm

Installed extensions

The following extra PHP extensions are installed.

  • bcmath
  • gd (with JPEG support)
  • mysqli
  • opcache
  • pdo_mysql
  • pgsql
  • pdo_pgsql
  • redis
  • zip

You may install more extensions using the same method used with the official PHP image.

About

Ready-to-use PHP image for modern web app

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

74 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

PHP Docker Image

PHP images based on the official PHP image, ready to use for modern web app and easily configurable via environment variables.

GitHub CI build status

Image variants

Image tags follow the same pattern as the official image.

There are 3 variants (PHP CLI, PHP-FPM, Nginx) based on Alpine and Debian to fit your specific use cases.

sunasteriskrnd/php:<version>-cli

This variant contains only the PHP CLI tool. Useful when you only need to run PHP code and not serving a web app. Example use cases are running cronjob commands or a background job worker.

sunasteriskrnd/php:<version>-fpm

This variant contains PHP-FPM. You will need a web server that support FastCGI protocol to server the web app. Use this variant if you've already had a web server running and want to scale only the PHP-FPM process.

PHP-FPM Healthcheck

Healthcheck for php-fpm image is included as a script php-fpm-healthcheck.

docker run --rm -d \
--health-cmd=php-fpm-healthcheck \
--health-interval=15s \
--health-timeout=3s \
--health-retries=3 \
sunasteriskrnd/php:fpm

Using docker-compose:

healthcheck:
test: ["CMD", "php-fpm-healthcheck"]interval: 15stimeout: 3sretries: 3

sunasteriskrnd/php:<version>-nginx

This variant is based on the fpm variant and comes with NGINX webserver to serve your PHP application.

Usage

Assuming you are in the directory containing your index.php file. Run this command to create a container to serve your application on port 80.

docker run -d -p 80:80 -v "$PWD":/var/www/html sunasteriskrnd/php:7.4-nginx

Using a Dockerfile

Assuming src/ is the directory containing your PHP code with an index.php file. You can use the nginx variant as base image for your image as below.

FROM sunasteriskrnd/php:7.4-nginx
COPY src/ /var/www/html/

Changing default nginx root

By default, the nginx image serves from /var/www/html directory. If you wish to change this location, specify the DOCUMENT_ROOT environment variable. For example, to change the root to /srv/application, your Dockerfile may look like this:

FROM sunasteriskrnd/php:7.4-nginx
ENV DOCUMENT_ROOT=/srv/application
COPY src/ /srv/application

sunasteriskrnd/php:<version>-<base>

Images are either based on Alpine or Debian. Supported versions are Alpine 3.14 and 3.15, Debian buster and bullseye.

For example, 8.1-cli-bullseye contains PHP 8.1 CLI based on Debian bullseye.

Tag aliases

All variants have some tag aliases beside the full tag in the format <version>-<variant>-<base>. Any component in the format can be omited and the default value for it will be used. Major, minor or patch version can be used for <version>.

For example, 8.1-cli-bullseye, 8.1-cli, 8.1, 8, cli all refers to the same image. See the docker-bake.hcl file for all tags available.

Currently, the default is PHP 8.1 CLI variant on Debian bullseye.

Configuration

Configuration via environment variables is supported. Environment variables prefixed with PHP. are set as PHP configurations. Environment variables prefixed with PHP_FPM. are set as configuration for the www pool (fpm and nginx variants only). For example:

docker run --rm -it \
-e PHP.memory_limit=256M \
-e PHP.post_max_size=64M \
-e PHP.upload_max_file_size=64M \
sunasteriskrnd/php
docker run --rm -it \
-e PHP.memory_limit=256M \
-e PHP_FPM.pm=ondemand \
-e PHP_FPM.pm.max_children=40 \
sunasteriskrnd/php:fpm

Installed extensions

The following extra PHP extensions are installed.

  • bcmath
  • gd (with JPEG support)
  • mysqli
  • opcache
  • pdo_mysql
  • pgsql
  • pdo_pgsql
  • redis
  • zip

You may install more extensions using the same method used with the official PHP image.

About

Ready-to-use PHP image for modern web app

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

74 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

PHP Docker Image

PHP images based on the official PHP image, ready to use for modern web app and easily configurable via environment variables.

GitHub CI build status

Image variants

Image tags follow the same pattern as the official image.

There are 3 variants (PHP CLI, PHP-FPM, Nginx) based on Alpine and Debian to fit your specific use cases.

sunasteriskrnd/php:<version>-cli

This variant contains only the PHP CLI tool. Useful when you only need to run PHP code and not serving a web app. Example use cases are running cronjob commands or a background job worker.

sunasteriskrnd/php:<version>-fpm

This variant contains PHP-FPM. You will need a web server that support FastCGI protocol to server the web app. Use this variant if you've already had a web server running and want to scale only the PHP-FPM process.

PHP-FPM Healthcheck

Healthcheck for php-fpm image is included as a script php-fpm-healthcheck.

docker run --rm -d \
--health-cmd=php-fpm-healthcheck \
--health-interval=15s \
--health-timeout=3s \
--health-retries=3 \
sunasteriskrnd/php:fpm

Using docker-compose:

healthcheck:
test: ["CMD", "php-fpm-healthcheck"]interval: 15stimeout: 3sretries: 3

sunasteriskrnd/php:<version>-nginx

This variant is based on the fpm variant and comes with NGINX webserver to serve your PHP application.

Usage

Assuming you are in the directory containing your index.php file. Run this command to create a container to serve your application on port 80.

docker run -d -p 80:80 -v "$PWD":/var/www/html sunasteriskrnd/php:7.4-nginx

Using a Dockerfile

Assuming src/ is the directory containing your PHP code with an index.php file. You can use the nginx variant as base image for your image as below.

FROM sunasteriskrnd/php:7.4-nginx
COPY src/ /var/www/html/

Changing default nginx root

By default, the nginx image serves from /var/www/html directory. If you wish to change this location, specify the DOCUMENT_ROOT environment variable. For example, to change the root to /srv/application, your Dockerfile may look like this:

FROM sunasteriskrnd/php:7.4-nginx
ENV DOCUMENT_ROOT=/srv/application
COPY src/ /srv/application

sunasteriskrnd/php:<version>-<base>

Images are either based on Alpine or Debian. Supported versions are Alpine 3.14 and 3.15, Debian buster and bullseye.

For example, 8.1-cli-bullseye contains PHP 8.1 CLI based on Debian bullseye.

Tag aliases

All variants have some tag aliases beside the full tag in the format <version>-<variant>-<base>. Any component in the format can be omited and the default value for it will be used. Major, minor or patch version can be used for <version>.

For example, 8.1-cli-bullseye, 8.1-cli, 8.1, 8, cli all refers to the same image. See the docker-bake.hcl file for all tags available.

Currently, the default is PHP 8.1 CLI variant on Debian bullseye.

Configuration

Configuration via environment variables is supported. Environment variables prefixed with PHP. are set as PHP configurations. Environment variables prefixed with PHP_FPM. are set as configuration for the www pool (fpm and nginx variants only). For example:

docker run --rm -it \
-e PHP.memory_limit=256M \
-e PHP.post_max_size=64M \
-e PHP.upload_max_file_size=64M \
sunasteriskrnd/php
docker run --rm -it \
-e PHP.memory_limit=256M \
-e PHP_FPM.pm=ondemand \
-e PHP_FPM.pm.max_children=40 \
sunasteriskrnd/php:fpm

Installed extensions

The following extra PHP extensions are installed.

  • bcmath
  • gd (with JPEG support)
  • mysqli
  • opcache
  • pdo_mysql
  • pgsql
  • pdo_pgsql
  • redis
  • zip

You may install more extensions using the same method used with the official PHP image.

About

Ready-to-use PHP image for modern web app

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages