New approach with helm chart and add gd and opcache
Publish PHP Apache image / Build, test and push (push) Failing after 21s
Publish PHP Apache image / Build, test and push (push) Failing after 21s
This commit is contained in:
@@ -1,3 +1,52 @@
|
||||
# php-apache
|
||||
|
||||
Simple docker image to run latest apache with latest php (provided by arch)
|
||||
Arch Linux container image with Apache and PHP. It is the common runtime for
|
||||
the PHP sites hosted at brunner.ninja, including WordPress and phpPgAdmin.
|
||||
|
||||
The image enables PostgreSQL and PDO PostgreSQL, GD for image thumbnails and
|
||||
responsive sizes, EXIF for photo metadata, Intl for locale-aware operations,
|
||||
and a production-sized PHP OPcache. Timestamp checks remain enabled so edits
|
||||
made through the browser-based development container and WordPress updates on
|
||||
the shared CephFS volume become visible without restarting Apache.
|
||||
|
||||
## Continuous integration
|
||||
|
||||
The Gitea Actions workflow builds and tests the image on every push. It also
|
||||
rebuilds the rolling Arch Linux base every Monday. Push builds publish the
|
||||
image to `registry.brunner.ninja/feedc0de/php-apache` with the Git commit SHA.
|
||||
Builds of `main` additionally publish `latest` and an
|
||||
`<apache-version>-<php-version>` tag. Scheduled and manually dispatched builds
|
||||
do not overwrite commit tags; they refresh only the mutable main tags.
|
||||
|
||||
The workflow requires these repository secrets:
|
||||
|
||||
- `QUAY_USERNAME`: Quay robot-account username with write access to the image.
|
||||
- `QUAY_TOKEN`: token for that robot account.
|
||||
- `PACKAGE_USERNAME`: Gitea user that publishes packages for `feedc0de`.
|
||||
- `PACKAGE_TOKEN`: Gitea token with package write access.
|
||||
|
||||
No downstream repository is triggered. PostgreSQL support is part of this
|
||||
image, and derivative images such as phpPgAdmin rebuild on their own schedule.
|
||||
|
||||
## PHP homepage Helm chart
|
||||
|
||||
`helm/php-homepage` deploys this image with a CephFS-backed web root. Existing
|
||||
sites should set `persistence.existingClaim`; in that mode the chart references
|
||||
the PVC but deliberately does not render or own it. This keeps site content
|
||||
independent of the Helm release and safe from `helm uninstall`.
|
||||
|
||||
The chart can create a new RWX PVC when `existingClaim` is empty. Such PVCs
|
||||
carry Helm's `keep` resource policy by default as an additional safeguard for
|
||||
website content.
|
||||
|
||||
Each successful `main` or scheduled image build also publishes a new chart to
|
||||
the `feedc0de` Gitea Helm registry. Its `appVersion` is the unique image tag
|
||||
built by that same workflow run. Site values do not override the image, so
|
||||
updating the Helm repository and upgrading a release selects the image from the
|
||||
new chart:
|
||||
|
||||
```sh
|
||||
helm repo add brunner https://code.brunner.ninja/api/packages/feedc0de/helm
|
||||
helm repo update brunner
|
||||
helm upgrade --install example-site brunner/php-homepage -f values.yaml
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user