Skip to content

Skeleton for a Docker nginx / php / mysql / redis development stack. Everything in its own container!

License

Notifications You must be signed in to change notification settings

geerteltink/dockerfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dockerfiles

build-nginx build-mysql build-php-8-0 build-php-8-1 build-php-8-2

A collection of customized containers for a Docker web development stack. Where possible the containers are build on top of Alpine Linux for a small footprint.

containers

Usage

  1. Use a custom [docker compose.yml](docker compose.yml) file to do the work for you. Adjust the settings needed for the project.
  2. Copy .env.dist to .env and change at least the project id.
  3. Start the container with docker compose up -d.

Fixing "Permission Denied" Issues

Use setfacl to set permission on the host

sudo setfacl -Rm g:82:rwX,d:g:82:rwX /home/<username>/projects

Setup permissions for docker so the files can be accessed and deleted. The trick is to use the uid's from the docker processes. www-data/nginx: 82 - docker: 999 - mysql: 28

# Preserve default permissions for new files and folders
sudo setfacl -dR -m u:28:rwx -m u:82:rwx -m u:33:rwx -m u:999:rwx -m u:$(whoami):rwx data
# Set permissions
sudo setfacl -R -m u:28:rwx -m u:82:rwx -m u:33:rwx -m u:999:rwx -m u:$(whoami):rwx data

Xdebug

Xdebug is configured so it doesn't start automatically. You need to enable the debug listener in PhpStorm first and enable a session cookie in your Chrome or Firefox browser.

Building manually

docker build . --file Dockerfile --tag dev
docker run --rm -it tag

Docker commands

Start containers

docker compose up -d

Start and force rebuilding the containers

docker compose up --build

Stop containers

docker compose stop

Update containers

docker compose pull

Stream logs from all containers to the console

docker compose logs -t -f

Start a terminal for <container_name>

# With docker compose
docker compose run --rm php /bin/bash   # Ubuntu/Debian based
docker compose run --rm php /bin/sh     # Alpine Linux based
# With docker
docker exec -ti <container_name> /bin/bash   # Ubuntu/Debian based
docker exec -ti <container_name> /bin/sh     # Alpine Linux based

Docker maintenance commands

Stats for running containers

docker stats -a

Show used space, similar to the unix tool df

docker system df

Remove development junk: unused volumes, networks, exited containers and unused images

docker system prune --force --all

List all images

docker images

List containers

docker ps

Force stop all containers in PowerShell

docker ps -a -q | ForEach { docker stop $_ }

About

Skeleton for a Docker nginx / php / mysql / redis development stack. Everything in its own container!

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •