Merge pull request #16029 from keymanapp/docs/website-composer-exec

docs: add note on how to use composer on dockerized websites
This commit is contained in:
Marc Durdin 2026-06-02 20:51:35 +10:00 committed by GitHub
commit 43b4f48e5f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -95,6 +95,55 @@ docker logs -f {Docker Container Name}
Refer to **Port lookup table** above for Docker container names
---------
## How to run composer updates
The Docker containers are setup with multi-stage images, so you will need to
target the composer-builder stage if you want to execute composer commands such
as `composer update` or `composer audit`. The following scripts show how to do
this; here the same id is used for the image tag and the container name for simplicity:
On macOS, Linux:
```bash
COMPOSER_ID=composer-temp
# setup
docker build -f Dockerfile --target composer-builder --tag $COMPOSER_ID .
docker run -v "$(pwd):/var/www/html/" --name $COMPOSER_ID --user root --rm -d $COMPOSER_ID
# run commands with `docker exec`, e.g.:
# docker exec $COMPOSER_ID composer audit
# docker exec $COMPOSER_ID composer update
# docker exec $COMPOSER_ID composer update --lock
# copy modified files to mounted volume:
docker exec $COMPOSER_ID cp composer.lock /var/www/html/
docker exec $COMPOSER_ID cp composer.json /var/www/html/
# cleanup
docker stop $COMPOSER_ID
docker rmi $COMPOSER_ID
```
On git bash for Windows, paths must start with `//`, e.g. `//$(pwd)`, `//var/www/html/`:
```bash
COMPOSER_ID=composer-temp
# setup
docker build -f Dockerfile --target composer-builder --tag $COMPOSER_ID .
docker run -v "//$(pwd):/var/www/html/" --name $COMPOSER_ID --user root --rm -d $COMPOSER_ID
# run commands with `docker exec`, e.g.:
# docker exec $COMPOSER_ID composer audit
# docker exec $COMPOSER_ID composer update
# docker exec $COMPOSER_ID composer update --lock
# copy modified files to mounted volume:
docker exec $COMPOSER_ID cp composer.lock //var/www/html/
docker exec $COMPOSER_ID cp composer.json //var/www/html/
# cleanup
docker stop $COMPOSER_ID
docker rmi $COMPOSER_ID
```
---------
## Website Dependencies