Как создать docker для yii2 для запуска на локальной машине

Создание Docker для Yii2 на локальной машине

Чтобы создать Docker-контейнер для приложения Yii2 на вашей локальной машине, выполните следующие шаги:

1. Установка Docker

Если у вас еще не установлен Docker, скачайте и установите его с официального сайта Docker.

2. Создание структуры проекта

Создайте новую директорию для вашего проекта Yii2 и перейдите в нее:

bash

mkdir yii2-docker-app
cd yii2-docker-app

3. Создание Dockerfile

Создайте файл Dockerfile в корне вашего проекта с содержимым:

dockerfile

# Используем официальный образ PHP с необходимыми расширениями
FROM php:8.0-fpm

# Установка необходимых расширений
RUN docker-php-ext-install pdo pdo_mysql

# Установка Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

# Установка рабочей директории
WORKDIR /var/www

# Копируем файлы проекта в контейнер
COPY . .

# Установка зависимостей через Composer
RUN composer install

4. Создание docker-compose.yml

Создайте файл docker-compose.yml в корне вашего проекта:

yaml

version: '3.8'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - .:/var/www
    ports:
      - "8000:80"
    depends_on:
      - db

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: yii2_db
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

5. Настройка конфигурации Yii2

Вам нужно будет настроить подключение к базе данных в файле config/db.php вашего приложения Yii2:

php

return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=db;dbname=yii2_db',
    'username' => 'user',
    'password' => 'password',
    'charset' => 'utf8',
];

6. Запуск контейнеров

Теперь вы готовы запустить ваше приложение. В терминале выполните команду:

bash

docker-compose up -d

Эта команда создаст и запустит контейнеры в фоновом режиме.

7. Доступ к приложению

После успешного запуска контейнеров, вы сможете получить доступ к вашему приложению по адресу http://localhost:8000.