Develop PHP based applications. Includes needed tools, extensions, and dependencies.
Metadata | Value |
---|---|
Categories | Languages |
Image type | Dockerfile |
Published images | mcr.microsoft.com/devcontainers/php |
Available image variants | 8 / 8-bookworm, 8.3 / 8.3-bookworm, 8.2 / 8.2-bookworm, 8.1 / 8.1-bookworm, 8-bullseye, 8.3-bullseye, 8.2-bullseye, 8.1-bullseye, 8-buster, 8.2-buster, 8.1-buster (full list) |
Published image architecture(s) | x86-64, arm64/aarch64 for bookworm , and bullseye variants |
Container host OS support | Linux, macOS, Windows |
Container OS | Debian |
Languages, platforms | PHP |
See history for information on the contents of published images.
You can directly reference pre-built versions of Dockerfile
by using the image
property in .devcontainer/devcontainer.json
or updating the FROM
statement in your own Dockerfile
with one of the following:
mcr.microsoft.com/devcontainers/php
(latest)mcr.microsoft.com/devcontainers/php:8
(or8-bookworm
,8-bullseye
,8-buster
to pin to an OS version)mcr.microsoft.com/devcontainers/php:8.3
(or8.3-bookworm
,8.3-bullseye
to pin to an OS version)mcr.microsoft.com/devcontainers/php:8.2
(or8.2-bookworm
,8.2-bullseye
,8.2-buster
to pin to an OS version)mcr.microsoft.com/devcontainers/php:8.1
(or8.1-bookworm
,8.1-bullseye
,8.1-buster
to pin to an OS version)
Refer to this guide for more details.
You can decide how often you want updates by referencing a semantic version of each image. For example:
mcr.microsoft.com/devcontainers/php:1-8
(or1-8-bookworm
,1-8-bullseye
,1-8-buster
)mcr.microsoft.com/devcontainers/php:1.0-8
(or1.0-8-bookworm
,1.0-8-bullseye
,1.0-8-buster
)mcr.microsoft.com/devcontainers/php:1.0.3-8
(or1.0.3-8-bookworm
,1.0.3-8-bullseye
,1.0.3-8-buster
)
However, we only do security patching on the latest non-breaking, in support versions of images (e.g. 1-8
). You may want to run apt-get update && apt-get upgrade
in your Dockerfile if you lock to a more specific version to at least pick up OS security updates.
See history for information on the contents of each version and here for a complete list of available tags.
Alternatively, you can use the contents of .devcontainer to fully customize your container's contents or to build it for a container host architecture not supported by the image.
Given JavaScript front-end web client code written for use in conjunction with a PHP back-end often requires the use of Node.js-based utilities to build, this container also includes nvm
so that you can easily install Node.js.
Also, you can use a Node feature to install any version of Node by adding the following to devcontainer.json
:
{
"features": {
"ghcr.io/devcontainers/features/node:1": {
"version": "latest"
}
}
}
This dev container includes Apache in addition to the PHP CLI. While you can use PHP's built in CLI (e.g. php -S 0.0.0.0:8080
), you can start Apache by running:
apache2ctl start
Apache will be available on port 8080
.
If you want to wire in something directly from your source code into the www
folder, you can add a symlink as follows to postCreateCommand
:
"postCreateCommand": "sudo chmod a+x \"$(pwd)\" && sudo rm -rf /var/www/html && sudo ln -s \"$(pwd)\" /var/www/html"
...or execute this from a terminal window once the container is up:
sudo chmod a+x "$(pwd)" && sudo rm -rf /var/www/html && sudo ln -s "$(pwd)" /var/www/html
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. See LICENSE.