[{"data":1,"prerenderedAt":1447},["ShallowReactive",2],{"navigation":3,"/docs/getting-started/contributing":221,"/docs/getting-started/contributing-surround":1442},[4],{"title":5,"path":6,"stem":7,"children":8},"Docs","/docs","docs",[9,12,56,85,132,153,178,195,208],{"title":10,"path":6,"stem":11},"","docs/index",{"title":13,"path":14,"stem":15,"children":16,"icon":55},"Getting Started","/docs/getting-started","docs/1.getting-started/1.index",[17,19,23,27,31,35,39,43,47,51],{"title":18,"path":14,"stem":15},"Introduction",{"title":20,"path":21,"stem":22},"Container Basics","/docs/getting-started/container-basics","docs/1.getting-started/2.container-basics",{"title":24,"path":25,"stem":26},"Installation","/docs/getting-started/installation","docs/1.getting-started/3.installation",{"title":28,"path":29,"stem":30},"These Images vs Others","/docs/getting-started/these-images-vs-others","docs/1.getting-started/4.these-images-vs-others",{"title":32,"path":33,"stem":34},"Choosing an Image","/docs/getting-started/choosing-an-image","docs/1.getting-started/5.choosing-an-image",{"title":36,"path":37,"stem":38},"Default Configurations","/docs/getting-started/default-configurations","docs/1.getting-started/6.default-configurations",{"title":40,"path":41,"stem":42},"Upgrade Guide","/docs/getting-started/upgrade-guide","docs/1.getting-started/7.upgrade-guide",{"title":44,"path":45,"stem":46},"Changelog","/docs/getting-started/changelog","docs/1.getting-started/8.changelog",{"title":48,"path":49,"stem":50},"About","/docs/getting-started/about","docs/1.getting-started/9.about",{"title":52,"path":53,"stem":54},"Contributing","/docs/getting-started/contributing","docs/1.getting-started/99.contributing",false,{"title":57,"path":58,"stem":59,"children":60,"page":55},"Image Variations","/docs/image-variations","docs/2.image-variations",[61,65,69,73,77,81],{"title":62,"path":63,"stem":64},"CLI","/docs/image-variations/cli","docs/2.image-variations/cli",{"title":66,"path":67,"stem":68},"FPM","/docs/image-variations/fpm","docs/2.image-variations/fpm",{"title":70,"path":71,"stem":72},"FPM-Apache","/docs/image-variations/fpm-apache","docs/2.image-variations/fpm-apache",{"title":74,"path":75,"stem":76},"FPM-NGINX","/docs/image-variations/fpm-nginx","docs/2.image-variations/fpm-nginx",{"title":78,"path":79,"stem":80},"FrankenPHP","/docs/image-variations/frankenphp","docs/2.image-variations/frankenphp",{"title":82,"path":83,"stem":84},"Unit (Deprecated)","/docs/image-variations/unit","docs/2.image-variations/unit",{"title":86,"path":87,"stem":88,"children":89,"page":55},"Framework Guides","/docs/framework-guides","docs/3.framework-guides",[90,123],{"title":91,"icon":55,"defaultOpen":55,"path":92,"stem":93,"children":94,"page":55},"Laravel","/docs/framework-guides/laravel","docs/3.framework-guides/1.laravel",[95,99,103,107,111,115,119],{"title":96,"path":97,"stem":98},"Automations","/docs/framework-guides/laravel/automations","docs/3.framework-guides/1.laravel/1.automations",{"title":100,"path":101,"stem":102},"Task Scheduler","/docs/framework-guides/laravel/task-scheduler","docs/3.framework-guides/1.laravel/2.task-scheduler",{"title":104,"path":105,"stem":106},"Queue","/docs/framework-guides/laravel/queue","docs/3.framework-guides/1.laravel/3.queue",{"title":108,"path":109,"stem":110},"Horizon","/docs/framework-guides/laravel/horizon","docs/3.framework-guides/1.laravel/4.horizon",{"title":112,"path":113,"stem":114},"Reverb","/docs/framework-guides/laravel/reverb","docs/3.framework-guides/1.laravel/4.reverb",{"title":116,"path":117,"stem":118},"Nightwatch","/docs/framework-guides/laravel/nightwatch","docs/3.framework-guides/1.laravel/5.nightwatch",{"title":120,"path":121,"stem":122},"Octane","/docs/framework-guides/laravel/octane","docs/3.framework-guides/1.laravel/octane",{"title":124,"icon":55,"defaultOpen":55,"path":125,"stem":126,"children":127,"page":55},"WordPress","/docs/framework-guides/wordpress","docs/3.framework-guides/2.wordpress",[128],{"title":129,"path":130,"stem":131},"Using Docker with WordPress","/docs/framework-guides/wordpress/using-wordpress-with-docker","docs/3.framework-guides/2.wordpress/4.using-wordpress-with-docker",{"title":133,"path":134,"stem":135,"children":136,"page":55},"Deployment And Production","/docs/deployment-and-production","docs/4.deployment-and-production",[137,141,145,149],{"title":138,"path":139,"stem":140},"Development to Production","/docs/deployment-and-production/development-to-production","docs/4.deployment-and-production/2.development-to-production",{"title":142,"path":143,"stem":144},"Packaging Your App for Deployment","/docs/deployment-and-production/packaging-your-app-for-deployment","docs/4.deployment-and-production/3.packaging-your-app-for-deployment",{"title":146,"path":147,"stem":148},"Configuring SSL","/docs/deployment-and-production/configuring-ssl","docs/4.deployment-and-production/4.configuring-ssl",{"title":150,"path":151,"stem":152},"Choosing a Host","/docs/deployment-and-production/choosing-a-host","docs/4.deployment-and-production/5.choosing-a-host",{"title":154,"icon":55,"defaultOpen":55,"path":155,"stem":156,"children":157,"page":55},"Advanced Guides","/docs/guide","docs/5.guide",[158,162,166,170,174],{"title":159,"path":160,"stem":161},"Migrating from official PHP images","/docs/guide/migrating-from-official-php-images","docs/5.guide/1.migrating-from-official-php-images",{"title":163,"path":164,"stem":165},"Using Healthchecks With Laravel","/docs/guide/using-healthchecks-with-laravel","docs/5.guide/2.using-healthchecks-with-laravel",{"title":167,"path":168,"stem":169},"Using S6 Overlay","/docs/guide/using-s6-overlay","docs/5.guide/2.using-s6-overlay",{"title":171,"path":172,"stem":173},"Understanding File Permissions","/docs/guide/understanding-file-permissions","docs/5.guide/3.understanding-file-permissions",{"title":175,"path":176,"stem":177},"Configuring Trusted Proxies","/docs/guide/configuring-trusted-proxies","docs/5.guide/4.configuring-trusted-proxies",{"title":179,"icon":55,"defaultOpen":55,"path":180,"stem":181,"children":182,"page":55},"Customization","/docs/customizing-the-image","docs/6.customizing-the-image",[183,187,191],{"title":184,"path":185,"stem":186},"Changing php.ini settings","/docs/customizing-the-image/changing-common-php-settings","docs/6.customizing-the-image/1.changing-common-php-settings",{"title":188,"path":189,"stem":190},"Installing PHP extensions","/docs/customizing-the-image/installing-additional-php-extensions","docs/6.customizing-the-image/2.installing-additional-php-extensions",{"title":192,"path":193,"stem":194},"Adding Start Up Scripts","/docs/customizing-the-image/adding-your-own-start-up-scripts","docs/6.customizing-the-image/3.adding-your-own-start-up-scripts",{"title":196,"path":197,"stem":198,"children":199,"page":55},"Troubleshooting","/docs/troubleshooting","docs/7.troubleshooting",[200,204],{"title":201,"path":202,"stem":203},"Common Issues","/docs/troubleshooting/common-issues","docs/7.troubleshooting/1.common-issues",{"title":205,"path":206,"stem":207},"Getting Help","/docs/troubleshooting/getting-help","docs/7.troubleshooting/2.getting-help",{"title":209,"path":210,"stem":211,"children":212,"page":55},"Reference","/docs/reference","docs/8.reference",[213,217],{"title":214,"path":215,"stem":216},"Environment Variable Specification","/docs/reference/environment-variable-specification","docs/8.reference/1.environment-variable-specification",{"title":218,"path":219,"stem":220},"Command Reference","/docs/reference/command-reference","docs/8.reference/2.command-reference",{"id":222,"title":52,"body":223,"description":1435,"extension":265,"links":1436,"meta":1437,"navigation":1188,"path":53,"redirect":1436,"seo":1440,"stem":54,"__hash__":1441},"docs/docs/1.getting-started/99.contributing.md",{"type":224,"value":225,"toc":1421},"minimark",[226,233,238,241,252,270,274,277,290,294,307,311,318,323,363,370,375,378,962,966,969,1015,1019,1026,1042,1049,1056,1059,1063,1066,1073,1077,1083,1086,1090,1099,1106,1110,1123,1127,1157,1161,1291,1295,1331,1339,1342,1353,1356,1360,1363,1417],[227,228,229],"lead-p",{},[230,231,232],"p",{},"Thanks for your interest in contributing to this project! Please use read this entire guide before submitting a pull request.",[234,235,237],"h2",{"id":236},"improve-the-docs","Improve the docs",[230,239,240],{},"Improving the docs is very easy. If you find a simple mistake, look at the bottom of the Table Of Contents section and click \"Edit this page\".",[230,242,243,244,247,248,251],{},"If you'd like to contribute bigger documentation changes, take a look at the ",[245,246,6],"code",{}," directory. Our entire site is available in that directory and you can see the process to easily install this on your machine by reading ",[245,249,250],{},"/docs/README.md",".",[253,254],"u-button",{"ariaLabel":255,"className":256,"color":264,"label":255,"size":265,"target":266,"to":267,"trailing-icon":268,"variant":269},"Learn how to contribute to the docs",[257,258,259,260,261,262,263],"font-bold","ring","ring-inset","ring-blue-600","text-blue-600","hover:ring-blue-500","hover:text-blue-500","primary","md","_blank","https://github.com/serversideup/docker-php/tree/main/docs","i-lucide-arrow-right","outline",[234,271,273],{"id":272},"project-dependencies","Project dependencies",[230,275,276],{},"You must have these installed on your system.",[278,279,280],"ul",{},[281,282,283,284],"li",{},"Docker (container engine): ",[285,286,287],"a",{"href":287,"rel":288},"https://www.docker.com/products/docker-desktop",[289],"nofollow",[234,291,293],{"id":292},"how-things-work","How things work",[295,296,297,304],"ol",{},[281,298,299,300,303],{},"All files are stored in the ",[245,301,302],{},"/src"," folder",[281,305,306],{},"GitHub Actions will automatically build and deploy the images",[234,308,310],{"id":309},"running-things-locally","Running things locally",[230,312,313,314,317],{},"To run a build, simply run ",[245,315,316],{},"./scripts/dev.sh"," (with Docker Desktop running). This will show you a help menu with all the available options.",[319,320,322],"h4",{"id":321},"example-build-a-fpm-nginx-image-running-php-8212-on-debian-bookworm","Example: Build a FPM-NGINX image running PHP 8.2.12 on Debian Bookworm",[324,325,330],"pre",{"className":326,"code":327,"filename":328,"language":329,"meta":10,"style":10},"language-bash shiki shiki-themes github-dark","bash scripts/dev.sh --variation fpm-nginx --version 8.2.12 --os bookworm\n","Terminal","bash",[245,331,332],{"__ignoreMap":10},[333,334,337,340,344,348,351,354,357,360],"span",{"class":335,"line":336},"line",1,[333,338,329],{"class":339},"svObZ",[333,341,343],{"class":342},"sU2Wk"," scripts/dev.sh",[333,345,347],{"class":346},"sDLfK"," --variation",[333,349,350],{"class":342}," fpm-nginx",[333,352,353],{"class":346}," --version",[333,355,356],{"class":346}," 8.2.12",[333,358,359],{"class":346}," --os",[333,361,362],{"class":342}," bookworm\n",[230,364,365,366,369],{},"This will build ",[245,367,368],{},"serversideup/php:8.2.12-fpm-nginx-bookworm"," locally on your machine for testing and inspection.",[371,372,374],"h3",{"id":373},"published-beta-images","Published Beta Images",[230,376,377],{},"We also have beta images that are published to our Docker Hub and GitHub Packages repositories.",[379,380,381,394],"table",{},[382,383,384],"thead",{},[385,386,387,391],"tr",{},[388,389,390],"th",{},"⚙️ Variation",[388,392,393],{},"🚀 Version",[395,396,397,545,684,756,895],"tbody",{},[385,398,399,403],{},[400,401,402],"td",{},"cli",[400,404,405,409,410,409,422,409,431,409,440,409,449,409,458,409,467,476,479,409,482,409,491,409,500,409,509,409,518,409,527,409,536],{},[406,407,408],"strong",{},"Debian Based"," ",[285,411,414],{"href":412,"rel":413},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.5-cli&page=1&ordering=-name",[289],[415,416],"img",{"alt":417,"className":418,"src":421},"serversideup/php:beta-8.5-cli",[419,420],"h-5","w-auto","https://img.shields.io/docker/image-size/serversideup/php/beta-8.5-cli?label=serversideup%2Fphp%3Abeta-8.5-cli",[285,423,426],{"href":424,"rel":425},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.4-cli&page=1&ordering=-name",[289],[415,427],{"alt":428,"className":429,"src":430},"serversideup/php:beta-8.4-cli",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.4-cli?label=serversideup%2Fphp%3Abeta-8.4-cli",[285,432,435],{"href":433,"rel":434},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.3-cli&page=1&ordering=-name",[289],[415,436],{"alt":437,"className":438,"src":439},"serversideup/php:beta-8.3-cli",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.3-cli?label=serversideup%2Fphp%3Abeta-8.3-cli",[285,441,444],{"href":442,"rel":443},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.2-cli&page=1&ordering=-name",[289],[415,445],{"alt":446,"className":447,"src":448},"serversideup/php:beta-8.2-cli",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.2-cli?label=serversideup%2Fphp%3Abeta-8.2-cli",[285,450,453],{"href":451,"rel":452},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.1-cli&page=1&ordering=-name",[289],[415,454],{"alt":455,"className":456,"src":457},"serversideup/php:beta-8.1-cli",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.1-cli?label=serversideup%2Fphp%3Abeta-8.1-cli",[285,459,462],{"href":460,"rel":461},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.0-cli&page=1&ordering=-name",[289],[415,463],{"alt":464,"className":465,"src":466},"serversideup/php:beta-8.0-cli",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.0-cli?label=serversideup%2Fphp%3Abeta-8.0-cli",[285,468,471],{"href":469,"rel":470},"https://hub.docker.com/r/serversideup/php/tags?name=beta-7.4-cli&page=1&ordering=-name",[289],[415,472],{"alt":473,"className":474,"src":475},"serversideup/php:beta-7.4-cli",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-7.4-cli?label=serversideup%2Fphp%3Abeta-7.4-cli",[477,478],"br",{},[406,480,481],{},"Alpine Based",[285,483,486],{"href":484,"rel":485},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.5-cli-alpine&page=1&ordering=-name",[289],[415,487],{"alt":488,"className":489,"src":490},"serversideup/php:beta-8.5-cli-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.5-cli-alpine?label=serversideup%2Fphp%3Abeta-8.5-cli-alpine",[285,492,495],{"href":493,"rel":494},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.4-cli-alpine&page=1&ordering=-name",[289],[415,496],{"alt":497,"className":498,"src":499},"serversideup/php:beta-8.4-cli-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.4-cli-alpine?label=serversideup%2Fphp%3Abeta-8.4-cli-alpine",[285,501,504],{"href":502,"rel":503},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.3-cli-alpine&page=1&ordering=-name",[289],[415,505],{"alt":506,"className":507,"src":508},"serversideup/php:beta-8.3-cli-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.3-cli-alpine?label=serversideup%2Fphp%3Abeta-8.3-cli-alpine",[285,510,513],{"href":511,"rel":512},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.2-cli-alpine&page=1&ordering=-name",[289],[415,514],{"alt":515,"className":516,"src":517},"serversideup/php:beta-8.2-cli-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.2-cli-alpine?label=serversideup%2Fphp%3Abeta-8.2-cli-alpine",[285,519,522],{"href":520,"rel":521},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.1-cli-alpine&page=1&ordering=-name",[289],[415,523],{"alt":524,"className":525,"src":526},"serversideup/php:beta-8.1-cli-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.1-cli-alpine?label=serversideup%2Fphp%3Abeta-8.1-cli-alpine",[285,528,531],{"href":529,"rel":530},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.0-cli-alpine&page=1&ordering=-name",[289],[415,532],{"alt":533,"className":534,"src":535},"serversideup/php:beta-8.0-cli-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.0-cli-alpine?label=serversideup%2Fphp%3Abeta-8.0-cli-alpine",[285,537,540],{"href":538,"rel":539},"https://hub.docker.com/r/serversideup/php/tags?name=beta-7.4-cli-alpine&page=1&ordering=-name",[289],[415,541],{"alt":542,"className":543,"src":544},"serversideup/php:beta-7.4-cli-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-7.4-cli-alpine?label=serversideup%2Fphp%3Abeta-7.4-cli-alpine",[385,546,547,550],{},[400,548,549],{},"fpm",[400,551,552,409,554,409,563,409,572,409,581,409,590,409,599,409,608,617,619,409,621,409,630,409,639,409,648,409,657,409,666,409,675],{},[406,553,408],{},[285,555,558],{"href":556,"rel":557},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.5-fpm&page=1&ordering=-name",[289],[415,559],{"alt":560,"className":561,"src":562},"serversideup/php:beta-8.5-fpm",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.5-fpm?label=serversideup%2Fphp%3Abeta-8.5-fpm",[285,564,567],{"href":565,"rel":566},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.4-fpm&page=1&ordering=-name",[289],[415,568],{"alt":569,"className":570,"src":571},"serversideup/php:beta-8.4-fpm",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.4-fpm?label=serversideup%2Fphp%3Abeta-8.4-fpm",[285,573,576],{"href":574,"rel":575},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.3-fpm&page=1&ordering=-name",[289],[415,577],{"alt":578,"className":579,"src":580},"serversideup/php:beta-8.3-fpm",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.3-fpm?label=serversideup%2Fphp%3Abeta-8.3-fpm",[285,582,585],{"href":583,"rel":584},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.2-fpm&page=1&ordering=-name",[289],[415,586],{"alt":587,"className":588,"src":589},"serversideup/php:beta-8.2-fpm",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.2-fpm?label=serversideup%2Fphp%3Abeta-8.2-fpm",[285,591,594],{"href":592,"rel":593},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.1-fpm&page=1&ordering=-name",[289],[415,595],{"alt":596,"className":597,"src":598},"serversideup/php:beta-8.1-fpm",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.1-fpm?label=serversideup%2Fphp%3Abeta-8.1-fpm",[285,600,603],{"href":601,"rel":602},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.0-fpm&page=1&ordering=-name",[289],[415,604],{"alt":605,"className":606,"src":607},"serversideup/php:beta-8.0-fpm",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.0-fpm?label=serversideup%2Fphp%3Abeta-8.0-fpm",[285,609,612],{"href":610,"rel":611},"https://hub.docker.com/r/serversideup/php/tags?name=beta-7.4-fpm&page=1&ordering=-name",[289],[415,613],{"alt":614,"className":615,"src":616},"serversideup/php:beta-7.4-fpm",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-7.4-fpm?label=serversideup%2Fphp%3Abeta-7.4-fpm",[477,618],{},[406,620,481],{},[285,622,625],{"href":623,"rel":624},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.5-fpm-alpine&page=1&ordering=-name",[289],[415,626],{"alt":627,"className":628,"src":629},"serversideup/php:beta-8.5-fpm-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.5-fpm-alpine?label=serversideup%2Fphp%3Abeta-8.5-fpm-alpine",[285,631,634],{"href":632,"rel":633},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.4-fpm-alpine&page=1&ordering=-name",[289],[415,635],{"alt":636,"className":637,"src":638},"serversideup/php:beta-8.4-fpm-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.4-fpm-alpine?label=serversideup%2Fphp%3Abeta-8.4-fpm-alpine",[285,640,643],{"href":641,"rel":642},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.3-fpm-alpine&page=1&ordering=-name",[289],[415,644],{"alt":645,"className":646,"src":647},"serversideup/php:beta-8.3-fpm-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.3-fpm-alpine?label=serversideup%2Fphp%3Abeta-8.3-fpm-alpine",[285,649,652],{"href":650,"rel":651},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.2-fpm-alpine&page=1&ordering=-name",[289],[415,653],{"alt":654,"className":655,"src":656},"serversideup/php:beta-8.2-fpm-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.2-fpm-alpine?label=serversideup%2Fphp%3Abeta-8.2-fpm-alpine",[285,658,661],{"href":659,"rel":660},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.1-fpm-alpine&page=1&ordering=-name",[289],[415,662],{"alt":663,"className":664,"src":665},"serversideup/php:beta-8.1-fpm-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.1-fpm-alpine?label=serversideup%2Fphp%3Abeta-8.1-fpm-alpine",[285,667,670],{"href":668,"rel":669},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.0-fpm-alpine&page=1&ordering=-name",[289],[415,671],{"alt":672,"className":673,"src":674},"serversideup/php:beta-8.0-fpm-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.0-fpm-alpine?label=serversideup%2Fphp%3Abeta-8.0-fpm-alpine",[285,676,679],{"href":677,"rel":678},"https://hub.docker.com/r/serversideup/php/tags?name=beta-7.4-fpm-alpine&page=1&ordering=-name",[289],[415,680],{"alt":681,"className":682,"src":683},"serversideup/php:beta-7.4-fpm-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-7.4-fpm-alpine?label=serversideup%2Fphp%3Abeta-7.4-fpm-alpine",[385,685,686,689],{},[400,687,688],{},"fpm-apache",[400,690,691,409,693,409,702,409,711,409,720,409,729,409,738,409,747],{},[406,692,408],{},[285,694,697],{"href":695,"rel":696},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.5-fpm-apache&page=1&ordering=-name",[289],[415,698],{"alt":699,"className":700,"src":701},"serversideup/php:beta-8.5-fpm-apache",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.5-fpm-apache?label=serversideup%2Fphp%3Abeta-8.5-fpm-apache",[285,703,706],{"href":704,"rel":705},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.4-fpm-apache&page=1&ordering=-name",[289],[415,707],{"alt":708,"className":709,"src":710},"serversideup/php:beta-8.4-fpm-apache",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.4-fpm-apache?label=serversideup%2Fphp%3Abeta-8.4-fpm-apache",[285,712,715],{"href":713,"rel":714},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.3-fpm-apache&page=1&ordering=-name",[289],[415,716],{"alt":717,"className":718,"src":719},"serversideup/php:beta-8.3-fpm-apache",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.3-fpm-apache?label=serversideup%2Fphp%3Abeta-8.3-fpm-apache",[285,721,724],{"href":722,"rel":723},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.2-fpm-apache&page=1&ordering=-name",[289],[415,725],{"alt":726,"className":727,"src":728},"serversideup/php:beta-8.2-fpm-apache",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.2-fpm-apache?label=serversideup%2Fphp%3Abeta-8.2-fpm-apache",[285,730,733],{"href":731,"rel":732},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.1-fpm-apache&page=1&ordering=-name",[289],[415,734],{"alt":735,"className":736,"src":737},"serversideup/php:beta-8.1-fpm-apache",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.1-fpm-apache?label=serversideup%2Fphp%3Abeta-8.1-fpm-apache",[285,739,742],{"href":740,"rel":741},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.0-fpm-apache&page=1&ordering=-name",[289],[415,743],{"alt":744,"className":745,"src":746},"serversideup/php:beta-8.0-fpm-apache",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.0-fpm-apache?label=serversideup%2Fphp%3Abeta-8.0-fpm-apache",[285,748,751],{"href":749,"rel":750},"https://hub.docker.com/r/serversideup/php/tags?name=beta-7.4-fpm-apache&page=1&ordering=-name",[289],[415,752],{"alt":753,"className":754,"src":755},"serversideup/php:beta-7.4-fpm-apache",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-7.4-fpm-apache?label=serversideup%2Fphp%3Abeta-7.4-fpm-apache",[385,757,758,761],{},[400,759,760],{},"fpm-nginx",[400,762,763,409,765,409,774,409,783,409,792,409,801,409,810,409,819,828,830,409,832,409,841,409,850,409,859,409,868,409,877,409,886],{},[406,764,408],{},[285,766,769],{"href":767,"rel":768},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.5-fpm-nginx&page=1&ordering=-name",[289],[415,770],{"alt":771,"className":772,"src":773},"serversideup/php:beta-8.5-fpm-nginx",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.5-fpm-nginx?label=serversideup%2Fphp%3Abeta-8.5-fpm-nginx",[285,775,778],{"href":776,"rel":777},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.4-fpm-nginx&page=1&ordering=-name",[289],[415,779],{"alt":780,"className":781,"src":782},"serversideup/php:beta-8.4-fpm-nginx",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.4-fpm-nginx?label=serversideup%2Fphp%3Abeta-8.4-fpm-nginx",[285,784,787],{"href":785,"rel":786},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.3-fpm-nginx&page=1&ordering=-name",[289],[415,788],{"alt":789,"className":790,"src":791},"serversideup/php:beta-8.3-fpm-nginx",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.3-fpm-nginx?label=serversideup%2Fphp%3Abeta-8.3-fpm-nginx",[285,793,796],{"href":794,"rel":795},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.2-fpm-nginx&page=1&ordering=-name",[289],[415,797],{"alt":798,"className":799,"src":800},"serversideup/php:beta-8.2-fpm-nginx",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.2-fpm-nginx?label=serversideup%2Fphp%3Abeta-8.2-fpm-nginx",[285,802,805],{"href":803,"rel":804},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.1-fpm-nginx&page=1&ordering=-name",[289],[415,806],{"alt":807,"className":808,"src":809},"serversideup/php:beta-8.1-fpm-nginx",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.1-fpm-nginx?label=serversideup%2Fphp%3Abeta-8.1-fpm-nginx",[285,811,814],{"href":812,"rel":813},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.0-fpm-nginx&page=1&ordering=-name",[289],[415,815],{"alt":816,"className":817,"src":818},"serversideup/php:beta-8.0-fpm-nginx",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.0-fpm-nginx?label=serversideup%2Fphp%3Abeta-8.0-fpm-nginx",[285,820,823],{"href":821,"rel":822},"https://hub.docker.com/r/serversideup/php/tags?name=beta-7.4-fpm-nginx&page=1&ordering=-name",[289],[415,824],{"alt":825,"className":826,"src":827},"serversideup/php:beta-7.4-fpm-nginx",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-7.4-fpm-nginx?label=serversideup%2Fphp%3Abeta-7.4-fpm-nginx",[477,829],{},[406,831,481],{},[285,833,836],{"href":834,"rel":835},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.5-fpm-nginx-alpine&page=1&ordering=-name",[289],[415,837],{"alt":838,"className":839,"src":840},"serversideup/php:beta-8.5-fpm-nginx-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.5-fpm-nginx-alpine?label=serversideup%2Fphp%3Abeta-8.5-fpm-nginx-alpine",[285,842,845],{"href":843,"rel":844},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.4-fpm-nginx-alpine&page=1&ordering=-name",[289],[415,846],{"alt":847,"className":848,"src":849},"serversideup/php:beta-8.4-fpm-nginx-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.4-fpm-nginx-alpine?label=serversideup%2Fphp%3Abeta-8.4-fpm-nginx-alpine",[285,851,854],{"href":852,"rel":853},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.3-fpm-nginx-alpine&page=1&ordering=-name",[289],[415,855],{"alt":856,"className":857,"src":858},"serversideup/php:beta-8.3-fpm-nginx-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.3-fpm-nginx-alpine?label=serversideup%2Fphp%3Abeta-8.3-fpm-nginx-alpine",[285,860,863],{"href":861,"rel":862},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.2-fpm-nginx-alpine&page=1&ordering=-name",[289],[415,864],{"alt":865,"className":866,"src":867},"serversideup/php:beta-8.2-fpm-nginx-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.2-fpm-nginx-alpine?label=serversideup%2Fphp%3Abeta-8.2-fpm-nginx-alpine",[285,869,872],{"href":870,"rel":871},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.1-fpm-nginx-alpine&page=1&ordering=-name",[289],[415,873],{"alt":874,"className":875,"src":876},"serversideup/php:beta-8.1-fpm-nginx-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.1-fpm-nginx-alpine?label=serversideup%2Fphp%3Abeta-8.1-fpm-nginx-alpine",[285,878,881],{"href":879,"rel":880},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.0-fpm-nginx-alpine&page=1&ordering=-name",[289],[415,882],{"alt":883,"className":884,"src":885},"serversideup/php:beta-8.0-fpm-nginx-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.0-fpm-nginx-alpine?label=serversideup%2Fphp%3Abeta-8.0-fpm-nginx-alpine",[285,887,890],{"href":888,"rel":889},"https://hub.docker.com/r/serversideup/php/tags?name=beta-7.4-fpm-nginx-alpine&page=1&ordering=-name",[289],[415,891],{"alt":892,"className":893,"src":894},"serversideup/php:beta-7.4-fpm-nginx-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-7.4-fpm-nginx-alpine?label=serversideup%2Fphp%3Abeta-7.4-fpm-nginx-alpine",[385,896,897,900],{},[400,898,899],{},"frankenphp",[400,901,902,409,904,409,913,409,922,409,931,933,409,935,409,944,409,953],{},[406,903,408],{},[285,905,908],{"href":906,"rel":907},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.5-frankenphp&page=1&ordering=-name",[289],[415,909],{"alt":910,"className":911,"src":912},"serversideup/php:beta-8.5-frankenphp",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.5-frankenphp?label=serversideup%2Fphp%3Abeta-8.5-frankenphp",[285,914,917],{"href":915,"rel":916},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.4-frankenphp&page=1&ordering=-name",[289],[415,918],{"alt":919,"className":920,"src":921},"serversideup/php:beta-8.4-frankenphp",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.4-frankenphp?label=serversideup%2Fphp%3Abeta-8.4-frankenphp",[285,923,926],{"href":924,"rel":925},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.3-frankenphp&page=1&ordering=-name",[289],[415,927],{"alt":928,"className":929,"src":930},"serversideup/php:beta-8.3-frankenphp",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.3-frankenphp?label=serversideup%2Fphp%3Abeta-8.3-frankenphp",[477,932],{},[406,934,481],{},[285,936,939],{"href":937,"rel":938},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.5-frankenphp-alpine&page=1&ordering=-name",[289],[415,940],{"alt":941,"className":942,"src":943},"serversideup/php:beta-8.5-frankenphp-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.5-frankenphp-alpine?label=serversideup%2Fphp%3Abeta-8.5-frankenphp-alpine",[285,945,948],{"href":946,"rel":947},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.4-frankenphp-alpine&page=1&ordering=-name",[289],[415,949],{"alt":950,"className":951,"src":952},"serversideup/php:beta-8.4-frankenphp-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.4-frankenphp-alpine?label=serversideup%2Fphp%3Abeta-8.4-frankenphp-alpine",[285,954,957],{"href":955,"rel":956},"https://hub.docker.com/r/serversideup/php/tags?name=beta-8.3-frankenphp-alpine&page=1&ordering=-name",[289],[415,958],{"alt":959,"className":960,"src":961},"serversideup/php:beta-8.3-frankenphp-alpine",[419,420],"https://img.shields.io/docker/image-size/serversideup/php/beta-8.3-frankenphp-alpine?label=serversideup%2Fphp%3Abeta-8.3-frankenphp-alpine",[319,963,965],{"id":964},"running-a-test-web-server","Running a test web server:",[230,967,968],{},"Sometimes you need to just run a test web server locally to see if your changes work. Below is a good example on how to quickly do this.",[324,970,972],{"className":326,"code":971,"filename":328,"language":329,"meta":10,"style":10},"docker run --rm -v $(pwd):/var/www/html -p 80:8080 -p 443:8443 serversideup/php:8.4-fpm-nginx\n",[245,973,974],{"__ignoreMap":10},[333,975,976,979,982,985,988,992,995,998,1001,1004,1007,1009,1012],{"class":335,"line":336},[333,977,978],{"class":339},"docker",[333,980,981],{"class":342}," run",[333,983,984],{"class":346}," --rm",[333,986,987],{"class":346}," -v",[333,989,991],{"class":990},"s95oV"," $(",[333,993,994],{"class":346},"pwd",[333,996,997],{"class":990},")",[333,999,1000],{"class":342},":/var/www/html",[333,1002,1003],{"class":346}," -p",[333,1005,1006],{"class":342}," 80:8080",[333,1008,1003],{"class":346},[333,1010,1011],{"class":342}," 443:8443",[333,1013,1014],{"class":342}," serversideup/php:8.4-fpm-nginx\n",[234,1016,1018],{"id":1017},"how-php-versions-are-selected-for-distribution","How PHP Versions are selected for distribution",[230,1020,1021,1022,1025],{},"We use the official PHP versions as our base image. To identify which versions should be built, we use a file called ",[245,1023,1024],{},"scripts/conf/php-versions-base-config.yml"," to explicitly select what versions should be built and any special rules/settings for each version (like base OS, default versions, etc).",[230,1027,1028,1029,1032,1033,1038,1039,251],{},"We then use a ",[245,1030,1031],{},"scripts/get-php-versions.sh"," script to download the ",[285,1034,1037],{"href":1035,"rel":1036},"https://www.php.net/releases/active.php",[289],"latest active releases from PHP"," and merge them into a final file called ",[245,1040,1041],{},"scripts/conf/php-versions.yml",[230,1043,1044,1045,1048],{},"The ",[245,1046,1047],{},"php-versions.yml"," file will include all final versions for tagging and building.",[230,1050,1051,1052,1055],{},"We generate our tags with a file called ",[245,1053,1054],{},"scripts/assemble-docker-tags.sh"," which handles all the advanced logic of compiling our tags together.",[230,1057,1058],{},"All the scripts above are designed to run locally and in GitHub Actions. Feel free to execute these scripts to see the help menus and how they work.",[234,1060,1062],{"id":1061},"github-actions","GitHub Actions",[230,1064,1065],{},"We use GitHub Actions exclusively to publish all of our releases. If the image exists from DockerHub or GitHub Packages, it will never be published from a local machine.",[230,1067,1068,1069,1072],{},"See ",[245,1070,1071],{},".github/workflows/action_publish-beta-images.yml"," for an example of how we publish our beta images.",[234,1074,1076],{"id":1075},"nginx-versions","NGINX Versions",[230,1078,1079,1080,1082],{},"We use the official NGINX repos to install the latest version of NGINX for each OS. The version to install is set by a build argument, which is loaded from the ",[245,1081,1024],{}," file.",[230,1084,1085],{},"To view the current NGINX versions, run the following command:",[319,1087,1089],{"id":1088},"view-nginx-versions","View NGINX versions",[324,1091,1093],{"className":326,"code":1092,"filename":328,"language":329,"meta":10,"style":10},"./scripts/get-nginx-versions.sh\n",[245,1094,1095],{"__ignoreMap":10},[333,1096,1097],{"class":335,"line":336},[333,1098,1092],{"class":339},[230,1100,1101,1102,1105],{},"This script will look at the official NGINX repos to find the latest version of NGINX for each OS. If you want to update the version, you can run the script with the ",[245,1103,1104],{},"--write"," flag.",[319,1107,1109],{"id":1108},"update-nginx-versions","Update NGINX versions",[324,1111,1113],{"className":326,"code":1112,"filename":328,"language":329,"meta":10,"style":10},"./scripts/get-nginx-versions.sh --write\n",[245,1114,1115],{"__ignoreMap":10},[333,1116,1117,1120],{"class":335,"line":336},[333,1118,1119],{"class":339},"./scripts/get-nginx-versions.sh",[333,1121,1122],{"class":346}," --write\n",[371,1124,1126],{"id":1125},"nginx-repository-key-verification","NGINX repository key verification",[278,1128,1129,1143],{},[281,1130,1131,1134,1135,1138,1139,1142],{},[406,1132,1133],{},"Debian (APT)",": We import the official NGINX GPG key from ",[245,1136,1137],{},"https://nginx.org/keys/nginx_signing.key"," and verify it against a pinned fingerprint via the ",[245,1140,1141],{},"SIGNING_FINGERPRINT"," build arg.",[281,1144,1145,1148,1149,1152,1153,1156],{},[406,1146,1147],{},"Alpine (APK)",": APK uses a raw RSA public key (",[245,1150,1151],{},"nginx_signing.rsa.pub","). We verify this key by pinning the SHA‑256 of the DER‑encoded public key via the ",[245,1154,1155],{},"SIGNING_ALPINE_RSA_PUB_SHA256"," build arg. You can provide multiple comma‑separated hashes to support key rotation.",[319,1158,1160],{"id":1159},"compute-the-alpine-key-hash-when-updating","Compute the Alpine key hash when updating:",[324,1162,1164],{"className":326,"code":1163,"filename":328,"language":329,"meta":10,"style":10},"curl -sS https://nginx.org/keys/nginx_signing.rsa.pub -o /tmp/nginx_signing.rsa.pub\n\n# macOS\nopenssl rsa -pubin -in /tmp/nginx_signing.rsa.pub -outform DER 2>/dev/null | shasum -a 256 | awk '{print $1}'\n\n# Linux\nopenssl rsa -pubin -in /tmp/nginx_signing.rsa.pub -outform DER 2>/dev/null | sha256sum | awk '{print $1}'\n",[245,1165,1166,1183,1190,1197,1248,1253,1259],{"__ignoreMap":10},[333,1167,1168,1171,1174,1177,1180],{"class":335,"line":336},[333,1169,1170],{"class":339},"curl",[333,1172,1173],{"class":346}," -sS",[333,1175,1176],{"class":342}," https://nginx.org/keys/nginx_signing.rsa.pub",[333,1178,1179],{"class":346}," -o",[333,1181,1182],{"class":342}," /tmp/nginx_signing.rsa.pub\n",[333,1184,1186],{"class":335,"line":1185},2,[333,1187,1189],{"emptyLinePlaceholder":1188},true,"\n",[333,1191,1193],{"class":335,"line":1192},3,[333,1194,1196],{"class":1195},"sAwPA","# macOS\n",[333,1198,1200,1203,1206,1209,1212,1215,1218,1221,1225,1228,1231,1234,1237,1240,1242,1245],{"class":335,"line":1199},4,[333,1201,1202],{"class":339},"openssl",[333,1204,1205],{"class":342}," rsa",[333,1207,1208],{"class":346}," -pubin",[333,1210,1211],{"class":346}," -in",[333,1213,1214],{"class":342}," /tmp/nginx_signing.rsa.pub",[333,1216,1217],{"class":346}," -outform",[333,1219,1220],{"class":342}," DER",[333,1222,1224],{"class":1223},"snl16"," 2>",[333,1226,1227],{"class":342},"/dev/null",[333,1229,1230],{"class":1223}," |",[333,1232,1233],{"class":339}," shasum",[333,1235,1236],{"class":346}," -a",[333,1238,1239],{"class":346}," 256",[333,1241,1230],{"class":1223},[333,1243,1244],{"class":339}," awk",[333,1246,1247],{"class":342}," '{print $1}'\n",[333,1249,1251],{"class":335,"line":1250},5,[333,1252,1189],{"emptyLinePlaceholder":1188},[333,1254,1256],{"class":335,"line":1255},6,[333,1257,1258],{"class":1195},"# Linux\n",[333,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1285,1287,1289],{"class":335,"line":1261},7,[333,1263,1202],{"class":339},[333,1265,1205],{"class":342},[333,1267,1208],{"class":346},[333,1269,1211],{"class":346},[333,1271,1214],{"class":342},[333,1273,1217],{"class":346},[333,1275,1220],{"class":342},[333,1277,1224],{"class":1223},[333,1279,1227],{"class":342},[333,1281,1230],{"class":1223},[333,1283,1284],{"class":339}," sha256sum",[333,1286,1230],{"class":1223},[333,1288,1244],{"class":339},[333,1290,1247],{"class":342},[319,1292,1294],{"id":1293},"build-with-the-new-hash-optionally-include-the-old-hash-during-rotation","Build with the new hash (optionally include the old hash during rotation)",[324,1296,1298],{"className":326,"code":1297,"filename":328,"language":329,"meta":10,"style":10},"docker build \\\n  --build-arg SIGNING_ALPINE_RSA_PUB_SHA256=\"\u003Cnew-hash>,\u003Cold-hash>\" \\\n  -f src/variations/fpm-nginx/Dockerfile .\n",[245,1299,1300,1310,1320],{"__ignoreMap":10},[333,1301,1302,1304,1307],{"class":335,"line":336},[333,1303,978],{"class":339},[333,1305,1306],{"class":342}," build",[333,1308,1309],{"class":346}," \\\n",[333,1311,1312,1315,1318],{"class":335,"line":1185},[333,1313,1314],{"class":346},"  --build-arg",[333,1316,1317],{"class":342}," SIGNING_ALPINE_RSA_PUB_SHA256=\"\u003Cnew-hash>,\u003Cold-hash>\"",[333,1319,1309],{"class":346},[333,1321,1322,1325,1328],{"class":335,"line":1192},[333,1323,1324],{"class":346},"  -f",[333,1326,1327],{"class":342}," src/variations/fpm-nginx/Dockerfile",[333,1329,1330],{"class":342}," .\n",[230,1332,1333,1334,251],{},"Reference: ",[285,1335,1338],{"href":1336,"rel":1337},"https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/#prebuilt_alpine",[289],"Installing NGINX Open Source → Alpine packages",[230,1340,1341],{},"Why allow multiple hashes? This is optional, but useful during a short rotation window:",[278,1343,1344,1347,1350],{},[281,1345,1346],{},"Ensure CI builds across branches/runners succeed while the upstream key change propagates.",[281,1348,1349],{},"Avoid flakes from CDN/caching delays where some environments still see the old key.",[281,1351,1352],{},"Let you pre-stage the new value before the official switch, then remove the old afterwards.",[230,1354,1355],{},"If you control all builds centrally and can update quickly, pass a single hash.",[234,1357,1359],{"id":1358},"helping-out","Helping out",[230,1361,1362],{},"If you're really eager to help out, here are a few places to get started:",[278,1364,1365,1379,1387,1395,1398],{},[281,1366,1367,1368,1373,1374],{},"Help answer questions on ",[285,1369,1372],{"href":1370,"rel":1371},"https://github.com/serversideup/docker-php/discussions",[289],"our GitHub Discussions"," and ",[285,1375,1378],{"href":1376,"rel":1377},"https://serversideup.net/discord",[289],"our Discord",[281,1380,1381,1382],{},"Chime in on ",[285,1383,1386],{"href":1384,"rel":1385},"https://github.com/serversideup/docker-php/issues?q=is%3Aissue+is%3Aopen+label%3A%22%F0%9F%99%8F+Help+Wanted%22",[289],"issues labeled \"Help Wanted\"",[281,1388,1389,1394],{},[285,1390,1393],{"href":1391,"rel":1392},"https://github.com/serversideup/docker-php/discussions/66",[289],"Open a feature request"," and tell us how we can improve",[281,1396,1397],{},"Run performance tests and share your results",[281,1399,1400,1401,1406,1407,1406,1412],{},"Say good things and tag us on X (formerly Twitter): ",[285,1402,1405],{"href":1403,"rel":1404},"https://x.com/serversideup",[289],"@serversideup",", ",[285,1408,1411],{"href":1409,"rel":1410},"https://x.com/danpastori",[289],"@danpastori",[285,1413,1416],{"href":1414,"rel":1415},"https://x.com/jaydrogers",[289],"@jaydrogers",[1418,1419,1420],"style",{},"html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}",{"title":10,"searchDepth":1185,"depth":1185,"links":1422},[1423,1424,1425,1426,1429,1430,1431,1434],{"id":236,"depth":1185,"text":237},{"id":272,"depth":1185,"text":273},{"id":292,"depth":1185,"text":293},{"id":309,"depth":1185,"text":310,"children":1427},[1428],{"id":373,"depth":1192,"text":374},{"id":1017,"depth":1185,"text":1018},{"id":1061,"depth":1185,"text":1062},{"id":1075,"depth":1185,"text":1076,"children":1432},[1433],{"id":1125,"depth":1192,"text":1126},{"id":1358,"depth":1185,"text":1359},"Learn how you can make a difference and contribute to the Docker PHP project.",null,{"head":1438,"layout":7},{"title":1439},"Contributing - Docker PHP - Server Side Up",{"title":52,"description":1435},"3Kjseb8zFE6eiaLMXziTOSVsNrF-0tlIqaXjbSu89ZI",[1443,1445],{"title":48,"path":49,"stem":50,"description":1444,"children":-1},"Learn more about how this project got started and who inspired it.",{"title":62,"path":63,"stem":64,"description":1446,"children":-1},"Learn how to use the CLI variation of the serversideup/php image.",1776367053013]