php-fpm/README.md
2023-10-14 23:50:51 +05:00

88 lines
2.3 KiB
Markdown

# php-fpm
- These containes are meant to be used as base images for app container with custom nginx container that expects volume from fpm container.
## Multi-arch support
- Install emualtor:
```bash
docker run --privileged --rm tonistiigi/binfmt --uninstall qemu-* #Uninstall existing
docker run --privileged --rm tonistiigi/binfmt --install all
```
- You may need to set these variable before running build if you have pre Docker v23
```bash
export COMPOSE_DOCKER_CLI_BUILD=1
export DOCKER_BUILDKIT=1
```
Enable (1) or disable (0) BuildKit builds
#### Adding new version
- copy one of the folders in this repo with new version number and edit Docker file in the new folder as needed.
#### Building new container
- `cd` into a folder and run `docker buildx bake --load`
#### Pushing built container to registry
- `cd` into a folder and run `docker buildx bake --push`
###
- Avoid adding app specifc depdencies to base images.
### Custom building
- go to app repo and create a .build dir and create `docker-compose.yml` with the following content:
```yaml
version: '3.5'
services:
#########################
fpm:
build:
context: ../
dockerfile: .build/fpm.Dockerfile
x-bake:
pull: true
platforms:
- linux/amd64/v1
- linux/amd64/v2
- linux/amd64/v3
- linux/arm/v7
- linux/arm64
hostname: fpm
image: git.shihaam.dev/dockerfiles/<app>/fpm
#########################
nginx:
build:
context: .
dockerfile: nginx.Dockerfile
x-bake:
pull: true
platforms:
- linux/amd64/v1
- linux/amd64/v2
- linux/amd64/v3
- linux/arm/v7
- linux/arm64
hostname: nginx
image: git.shihaam.dev/dockerfiles/<app>/nginx
```
## running the app
- Save the following in project dir as `docker-compose.yml` and run `docker compose up`
```yaml
version: '3.5'
services:
#########################
fpm:
hostname: fpm
image: git.shihaam.dev/dockerfiles/<app>/fpm
env_file:
- env
volumes:
- ./public:/var/www/html/storage/app/public
#########################
nginx:
hostname: nginx
image: git.shihaam.dev/dockerfiles/<>/nginx
ports:
- 8000:80
volumes_from:
- fpm
```