php:docker-php-dev
Docker PHP Dev
https://github.com/TrafeX/docker-php-nginx
git clone https://github.com/TrafeX/docker-php-nginx
- docker-compose.yml
services: php-dev: image: php-dev:latest build: context: . no_cache: true container_name: php-dev restart: unless-stopped environment: - PUID=1016 - PGID=1016 - TZ=Europe/London ports: - 7081:8080 volumes: - /opt/php-dev/html:/var/www/html #- /opt/php-dev/conf/php.ini:/etc/php84/conf.d/settings.ini #- /opt/php-dev/conf/php-fpm.conf:/etc/php84/php-fpm.d/server.conf
Create custom php.ini if required:
- config/php.ini
[PHP] allow_url_fopen=On max_execution_time = 600 [Date] date.timezone="UTC" expose_php= Off
Adjust Dockerfile to add/remove any extensions as required. E.g.:
RUN apk add --no-cache \ curl \ nginx \ php84 \ php84-ctype \ php84-curl \ php84-dom \ php84-fileinfo \ php84-fpm \ php84-intl \ php84-mbstring \ php84-opcache \ php84-phar \ php84-session \ php84-tokenizer \ php84-xml \ php84-xmlreader \ php84-xmlwriter \ php84-sqlite3 \ php84-mysqli \ supervisor
Add mysql docker if required:
name: php-dev-mysql services: energystats2-mysql: image: yobasystems/alpine-mariadb container_name: php-dev-mysql environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: database MYSQL_USER: username MYSQL_PASSWORD: password MYSQL_CHARSET: utf8 MYSQL_COLLATION: utf8_general_ci expose: - "3306" ports: - 13306:3306/tcp volumes: - /opt/php-dev-mysql-storage/data:/var/lib/mysql # - /opt/php-dev-mysql-storage/logs:/var/lib/mysql/mysql-bin - /opt/php-dev-mysql-storage/conf/my.cnf:/etc/my.cnf # - /opt/php-dev-mysql-storage/conf/mariadb-server.cnf:/etc/my.cnf.d/mariadb-server.cnf
php/docker-php-dev.txt · Last modified: 2025/04/13 10:19 by Wulf Rajek