š« (PHP) Flight micro-framework ready in one command
100K+
š« (PHP) Flight micro-framework ready in one command
Built on shinsenter/phpfpm-nginxā (Nginx, PHP-FPM, Composer). For settings shared by all images, see shinsenter/phpā .
New project: mount an empty folder. On first start the container downloads Flight into it (composer create-project flightphp/skeleton). Watch progress with docker logs -f <container>.
mkdir flightphp
docker run -p 80:80 -p 443:443 -p 443:443/udp \
-v ./flightphp:/var/www/html \
shinsenter/flightphp:latest
Existing project: mount your code the same way. Changes on the host show up in the container at once.
Compose:
services:
web:
image: shinsenter/flightphp:latest
ports: ["80:80", "443:443", "443:443/udp"]
volumes:
- ./flightphp:/var/www/html
The image has no database. Run one as a separate service and pass its address to the app through the app's own settings.
| Item | Value |
|---|---|
| Base image | shinsenter/phpfpm-nginxā |
| Web server | Nginx |
| Document root | public |
| New project source | composer create-project flightphp/skeleton |
| Variable | What it does | Default |
|---|---|---|
APP_PATH | Application directory inside the container. | /var/www/html |
DOCUMENT_ROOT | Folder inside APP_PATH that the web server serves. | public |
APP_USER, APP_GROUP, APP_UID, APP_GID | Run as another user and group. | www-data |
TZ | Container timezone, for example Asia/Tokyo. | UTC |
DEBUG | 1 prints verbose logs, including which hooks run. | not set |
ENABLE_CRONTAB, CRONTAB_SETTINGS | Turn on cron and define jobs, for example * * * * * php -f /var/www/html/cron.php. | not set |
PHP_* | Any php.ini setting, for example PHP_MEMORY_LIMIT=512M, PHP_UPLOAD_MAX_FILESIZE=100M. Run php-envvars in the container to list them. | image defaults |
The full list is in the shinsenter/phpā documentation.
The image ships a self-signed certificate for local tests:
/etc/ssl/site/server.crt/etc/ssl/site/server.keyFor production, replace both files with your own, by mounting them:
services:
web:
image: shinsenter/flightphp:latest
volumes:
- ./flightphp:/var/www/html
- ./my_domain.crt:/etc/ssl/site/server.crt
- ./my_domain.key:/etc/ssl/site/server.key
or by copying them in your own Dockerfile:
FROM shinsenter/flightphp:latest
COPY my_domain.crt /etc/ssl/site/server.crt
COPY my_domain.key /etc/ssl/site/server.key
FROM shinsenter/flightphp:latest
# Your own steps, for example:
ADD --chown=$APP_USER:$APP_GROUP ./flightphp/ /var/www/html/
Adding PHP extensions, hooks, autorun scripts and cron jobs are covered in shinsenter/phpā .
linux/386, linux/arm/v7, linux/ppc64le and linux/s390x are no longer built. Older tags keep them until they are rebuilt.docker pull shinsenter/flightphp:latest
docker tag shinsenter/flightphp:latest your-repo/flightphp:stable
docker push your-repo/flightphp:stable
Keeping these images rebuilt for every PHP release takes ongoing work. If they save you time, you can help keep them going:
Reporting a bug, sharing the project or giving it a star on GitHubā also helps.
From Vietnam š»š³ with love.
Content type
Image
Digest
sha256:33233e02dā¦
Size
90 MB
Last updated
about 8 hours ago
docker pull shinsenter/flightphpPulls:
2,335
Oct 26 to Nov 1