[{"data":1,"prerenderedAt":384},["ShallowReactive",2],{"navigation":3,"index":126},[4,28,53,86,106],{"title":5,"path":6,"stem":7,"children":8,"icon":27},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17,22],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F2.quick-start","i-lucide-rocket",{"title":18,"path":19,"stem":20,"icon":21},"Tags and versions","\u002Fgetting-started\u002Ftags-and-versions","1.getting-started\u002F3.tags-and-versions","i-lucide-pin",{"title":23,"path":24,"stem":25,"icon":26},"Building locally","\u002Fgetting-started\u002Fbuilding-locally","1.getting-started\u002F4.building-locally","i-lucide-hammer",false,{"title":29,"icon":27,"path":30,"stem":31,"children":32,"page":27},"Images","\u002Fimages","2.images",[33,38,43,48],{"title":34,"path":35,"stem":36,"icon":37},"base","\u002Fimages\u002Fbase","2.images\u002F1.base","i-lucide-box",{"title":39,"path":40,"stem":41,"icon":42},"php","\u002Fimages\u002Fphp","2.images\u002F2.php","i-simple-icons-php",{"title":44,"path":45,"stem":46,"icon":47},"php-nginx","\u002Fimages\u002Fphp-nginx","2.images\u002F3.php-nginx","i-simple-icons-nginx",{"title":49,"path":50,"stem":51,"icon":52},"php-nginx-dev","\u002Fimages\u002Fphp-nginx-dev","2.images\u002F4.php-nginx-dev","i-lucide-bug",{"title":54,"icon":27,"path":55,"stem":56,"children":57,"page":27},"Configuration","\u002Fconfiguration","3.configuration",[58,63,67,71,76,81],{"title":59,"path":60,"stem":61,"icon":62},"Environment variables","\u002Fconfiguration\u002Fenvironment-variables","3.configuration\u002F1.environment-variables","i-lucide-settings",{"title":64,"path":65,"stem":66,"icon":42},"PHP settings","\u002Fconfiguration\u002Fphp-settings","3.configuration\u002F2.php-settings",{"title":68,"path":69,"stem":70,"icon":47},"Nginx","\u002Fconfiguration\u002Fnginx","3.configuration\u002F3.nginx",{"title":72,"path":73,"stem":74,"icon":75},"SSL and HTTPS","\u002Fconfiguration\u002Fssl-https","3.configuration\u002F4.ssl-https","i-lucide-lock",{"title":77,"path":78,"stem":79,"icon":80},"Logging","\u002Fconfiguration\u002Flogging","3.configuration\u002F5.logging","i-lucide-scroll-text",{"title":82,"path":83,"stem":84,"icon":85},"Users and permissions","\u002Fconfiguration\u002Fusers-and-permissions","3.configuration\u002F6.users-and-permissions","i-lucide-user-lock",{"title":87,"icon":27,"path":88,"stem":89,"children":90,"page":27},"Security","\u002Fsecurity","4.security",[91,96,101],{"title":92,"path":93,"stem":94,"icon":95},"Hardening","\u002Fsecurity\u002Fhardening","4.security\u002F1.hardening","i-lucide-shield-check",{"title":97,"path":98,"stem":99,"icon":100},"Scanning and attestations","\u002Fsecurity\u002Fscanning-and-attestations","4.security\u002F2.scanning-and-attestations","i-lucide-scan-search",{"title":102,"path":103,"stem":104,"icon":105},"Known CVEs","\u002Fsecurity\u002Fknown-cves","4.security\u002F3.known-cves","i-lucide-file-warning",{"title":107,"icon":27,"path":108,"stem":109,"children":110,"page":27},"Releases","\u002Freleases","5.releases",[111,116,121],{"title":112,"path":113,"stem":114,"icon":115},"Release pipeline","\u002Freleases\u002Frelease-pipeline","5.releases\u002F1.release-pipeline","i-lucide-workflow",{"title":117,"path":118,"stem":119,"icon":120},"Automatic updates","\u002Freleases\u002Fautomatic-updates","5.releases\u002F2.automatic-updates","i-lucide-refresh-cw",{"title":122,"path":123,"stem":124,"icon":125},"Contributing","\u002Freleases\u002Fcontributing","5.releases\u002F3.contributing","i-lucide-git-pull-request",{"id":127,"title":128,"body":129,"description":128,"extension":375,"meta":376,"navigation":377,"path":378,"seo":379,"stem":382,"__hash__":383},"landing\u002Findex.md","",{"type":130,"value":131,"toc":373},"minimark",[132,268,354,369],[133,134,140,146,159,164,184],"u-page-hero",{"className":135,"orientation":139},[136,137,138],"dark:bg-gradient-to-b","from-neutral-900","to-neutral-950","horizontal",[141,142,143],"template",{"v-slot:top":128},[144,145],"hero-background",{},[141,147,148],{"v-slot:title":128},[149,150,151,152,158],"p",{},"PHP containers that are ",[153,154,157],"span",{"className":155},[156],"text-primary","pinned, hardened and small",".",[141,160,161],{"v-slot:description":128},[149,162,163],{},"Alpine-based images for PHP 8.2 to 8.6 on amd64 and arm64. Every release is pinned, every image is scanned before it is published, and nothing runs as root unless you ask it to.",[141,165,166,174],{"v-slot:links":128},[167,168,171],"u-button",{"size":169,"to":6,"trailing-icon":170},"xl","i-lucide-arrow-right",[149,172,173],{},"Get started",[167,175,181],{"size":169,"to":176,"color":177,"icon":178,"target":179,"variant":180},"https:\u002F\u002Fhub.docker.com\u002Fu\u002Fadamrollogi","neutral","i-simple-icons-docker","_blank","outline",[149,182,183],{},"Docker Hub",[185,186,189],"prose-pre",{"code":187,"filename":188},"docker run --rm -d -p 8080:8080 \\\n  -e NGINX_PORT=8080 \\\n  -v $(pwd):\u002Fvar\u002Fwww\u002Fhtml:ro \\\n  adamrollogi\u002Fphp-nginx:8.4\n","Terminal",[190,191,194],"pre",{"className":192,"code":187,"filename":188,"language":193,"meta":128,"style":128},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bash",[195,196,197,225,240,262],"code",{"__ignoreMap":128},[153,198,201,205,209,212,215,218,221],{"class":199,"line":200},"line",1,[153,202,204],{"class":203},"sBMFI","docker",[153,206,208],{"class":207},"sfazB"," run",[153,210,211],{"class":207}," --rm",[153,213,214],{"class":207}," -d",[153,216,217],{"class":207}," -p",[153,219,220],{"class":207}," 8080:8080",[153,222,224],{"class":223},"sTEyZ"," \\\n",[153,226,228,231,234,238],{"class":199,"line":227},2,[153,229,230],{"class":207},"  -e",[153,232,233],{"class":207}," NGINX_PORT=",[153,235,237],{"class":236},"sbssI","8080",[153,239,224],{"class":223},[153,241,243,246,250,254,257,260],{"class":199,"line":242},3,[153,244,245],{"class":207},"  -v",[153,247,249],{"class":248},"sMK4o"," $(",[153,251,253],{"class":252},"s2Zo4","pwd",[153,255,256],{"class":248},")",[153,258,259],{"class":207},":\u002Fvar\u002Fwww\u002Fhtml:ro",[153,261,224],{"class":223},[153,263,265],{"class":199,"line":264},4,[153,266,267],{"class":207},"  adamrollogi\u002Fphp-nginx:8.4\n",[269,270,273,278,283],"u-page-section",{"className":271},[272],"dark:bg-neutral-950",[141,274,275],{"v-slot:title":128},[149,276,277],{},"Four images, one lineage",[141,279,280],{"v-slot:description":128},[149,281,282],{},"Each image builds on the one before it, so behaviour is consistent from the CLI to the full web stack.",[141,284,285,297,308,319,330,342],{"v-slot:features":128},[286,287,288,292],"u-page-feature",{"icon":37,"to":35},[141,289,290],{"v-slot:title":128},[149,291,34],{},[141,293,294],{"v-slot:description":128},[149,295,296],{},"Alpine 3.24 with tini, Supervisor, bash, curl, git and the shared logging helpers. The foundation for everything else.",[286,298,299,303],{"icon":42,"to":40},[141,300,301],{"v-slot:title":128},[149,302,39],{},[141,304,305],{"v-slot:description":128},[149,306,307],{},"PHP CLI with Composer and the extensions a modern framework needs. One tag per minor and one per exact release.",[286,309,310,314],{"icon":47,"to":45},[141,311,312],{"v-slot:title":128},[149,313,44],{},[141,315,316],{"v-slot:description":128},[149,317,318],{},"Nginx and PHP-FPM under one roof, with optional HTTPS, security headers, a health endpoint and per-service logs.",[286,320,321,325],{"icon":52,"to":50},[141,322,323],{"v-slot:title":128},[149,324,49],{},[141,326,327],{"v-slot:description":128},[149,328,329],{},"The web stack plus Xdebug, visible errors and uncached assets, tuned for local development.",[286,331,332,337],{"icon":21,"to":19},[141,333,334],{"v-slot:title":128},[149,335,336],{},"Pinned releases",[141,338,339],{"v-slot:description":128},[149,340,341],{},"The exact PHP release is pinned per minor and enforced at build time. New upstream releases are picked up automatically every four hours.",[286,343,344,349],{"icon":95,"to":93},[141,345,346],{"v-slot:title":128},[149,347,348],{},"Hardened defaults",[141,350,351],{"v-slot:description":128},[149,352,353],{},"Non-root, no setuid binaries, root-owned config, read-only rootfs support, and Trivy scans gating every publish.",[269,355,359],{"className":356},[136,357,358],"from-neutral-950","to-neutral-900",[360,361,366],"u-page-c-t-a",{":links":362,"className":363,"description":364,"title":365},"[{\"label\":\"Read the quick start\",\"to\":\"\u002Fgetting-started\u002Fquick-start\",\"trailingIcon\":\"i-lucide-arrow-right\"},{\"label\":\"View the source\",\"to\":\"https:\u002F\u002Fgithub.com\u002FAdamRollinson\u002Fdocker\",\"target\":\"_blank\",\"variant\":\"subtle\",\"icon\":\"i-simple-icons-github\"}]",[272],"No Dockerfile layering needed for the common cases. Set a variable, restart the container, done.","Everything is configured with environment variables",[367,368],"stars-bg",{},[370,371,372],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":128,"searchDepth":200,"depth":227,"links":374},[],"md",{},true,"\u002F",{"title":380,"description":381},"Rollogi Docker Images","Multi-architecture PHP container images on Alpine Linux. Pinned PHP releases, hardened by default, with Nginx, PHP-FPM and Xdebug variants.","index","7Y_yX_5P9ZokowCrsAAjZBwpuci1JShwkN7JJ8zJcho",1792614872573]