m1n64/yii2-docker-app-basic

Yii 2 Basic Project Template with Docker

1.0.0 2025-06-01 19:45 UTC

This package is auto-updated.

Last update: 2025-06-01 19:46:31 UTC


README

This is a Docker-based template for Yii 2, built with:

  • PHP 8.4 (FPM on Alpine)
  • PostgreSQL 16
  • Redis
  • Node.js 22 + NPM
  • Supervisor for Queue & Scheduler
  • Makefile for easy commands (like Laravel Sail)
  • Nginx
  • Composer
  • XDebug in Dev Mode

๐Ÿ›  Setup Instructions

1๏ธโƒฃ Clone the Repository

composer create-project m1n64/yii2-docker-app-basic yii2-app
cd yii2-app

2๏ธโƒฃ Copy .env and Update Configuration

cp .env.example .env
  • Open .env file and change it:
DB_DATABASE=<your-db> # Change DB name
  • Change the container name prefix:

    Inside docker-compose.yml, rename y2- to your project name:

services:
    app:
        container_name: myproject-app
    nginx:
        container_name: myproject-nginx
    postgres:
        container_name: myproject-postgres
    redis:
        container_name: myproject-redis
  • Change the Docker network

    In docker-compose.yml:

networks:
   myproject-network:

๐Ÿš€ Start Containers

๐Ÿ”น Using Docker

docker-compose up -d

๐Ÿ”น Using Makefile

make up    # For development
make prod  # For production

๐Ÿ“ฆ Install Dependencies

๐Ÿ›  Install PHP Dependencies

Run inside the container:

docker-compose exec -u www-data app composer install

Or using Makefile:

make composer install

๐ŸŽธ Install Node.js & NPM Dependencies

make npm install
make npm run dev   # Run Vite for development

๐Ÿ“œ Run Migrations

make yii migrate

๐Ÿ’ป Available Commands

๐Ÿ›  Running Laravel Commands

Action Docker Command Makefile Shortcut
Run php yii docker-compose exec -u www-data app php yii <cmd> make yii <cmd>
Run composer docker-compose exec -u www-data app composer <cmd> make composer <cmd>
Run npm docker-compose exec -u www-data app npm <cmd> make npm <cmd>
Open Bash docker-compose exec -u www-data app bash make bash
View Logs docker-compose logs -f app make logs app
Open PostgreSQL CLI docker-compose exec -e PGPASSWORD=<pass> postgres psql -U <user> -d <db> make psql
Open Redis CLI docker-compose exec redis redis-cli make redis
Run Tests docker-compose exec -u www-data app php yii test make test

๐Ÿ›‘ Managing Containers

๐Ÿ”„ Restart & Stop

Action Docker Command Makefile Shortcut
Restart all docker-compose restart make restart
Restart one docker-compose restart <service> make restart-container CONTAINER=<name>
Stop all docker-compose stop make stop
Stop one docker-compose stop <service> make stop-container CONTAINER=<name>
Start all docker-compose up -d make up
Remove all docker-compose down -v make down

For list of all makefile commands, run make help.

๐Ÿ’ก PHPStorm Setup

PHP Interpreter

image image or image image image

XDebug

image image image

๐Ÿงช Run Tests

make test

๐Ÿ“œ Additional Notes

  • This setup supports Queues & Scheduler via Supervisor.
  • PostgreSQL, Redis & Supervisor are configured out of the box.
  • Uses Node.js 22 for Vite & frontend dependencies if you need.
  • All Docker volumes persist data between container restarts.

๐Ÿ”ฅ Now your Yii 2 project is fully containerized!

Use Makefile commands just enjoy seamless Docker development! ๐Ÿš€

๐Ÿค– Authors