/yii2-docker

Docker env for yii2 projects

Primary LanguagePHP

yii2-docker

Docker env for yii2 projects #Не забудьте добавить в ваши хосты из env в /etc/hosts PMA открывается по localhost:портуказаный в env

Установка

Установите Docker с официального сайта, если он еще не установлен https://www.docker.com/get-docker Для убунту устатновите docker-compose помимо docker

$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

$ sudo chmod +x /usr/local/bin/docker-compose

$ docker-compose --version
docker-compose version 1.17.0, build 1719ceb

Клонируйте этот репозиторий в свой проект

$ git clone https://github.com/wannabelinus/yii2-docker.git

добавьте его в .gitignore

gitignore file:
...
%name_of_cloned_folder%
...

Отредактируйте docker-compose.yml на ваше усмотрение

data:
  image: busybox:latest
  volumes:
    - ../:/app
  entrypoint: tail -f /dev/null

app:
  build: docker/php
  working_dir: /app
  volumes_from:
    - data
  expose:
    - 9000
  links:
    - db
    - mailcatcher
  environment:
    XDEBUG_CONFIG: "idekey=PHPSTORM remote_enable=On remote_connect_back=On"

nginx:
  image: nginx:1.12-alpine
  ports:
    - "8000:8000"
  volumes:
    - ./:/app
    - ./docker/nginx/vhost.conf:/etc/nginx/conf.d/vhost.conf
  links:
    - app

mailcatcher:
    image: schickling/mailcatcher:latest
    ports:
      - "1080:1080"

db:
  image: mysql:5.7
  volumes:
    - /var/lib/mysql
  ports:
    - "3307:3307"
  environment:
    MYSQL_ROOT_PASSWORD: root
    MYSQL_DATABASE: yii2
    MYSQL_USER: dbu
    MYSQL_PASSWORD: pass

phpmyadmin:
  image: phpmyadmin/phpmyadmin
  links:
    - db
  environment:
     MYSQL_USERNAME: root;
     MYSQL_ROOT_PASSWORD: root
     PMA_HOST: db
  ports:
    - '8001:80'    

Из папки этого репозитория:

$ docker-compose build

$ docker-compose up -d

Чтобы остановить:

$ docker-compose down

Переход в командную строку включеного приложения:

$ docker-compose exec app bash

Файлы настроек:

PHP /docker/php

Nginx /docker/nginx

Конфигурация БД (config/db.php)

<?php
return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=db;dbname=yii2',
    'username' => 'dbu',
    'password' => 'pass',
    'charset' => 'utf8',

    // Schema cache options (for production environment)
    //'enableSchemaCache' => true,
    //'schemaCacheDuration' => 60,
    //'schemaCache' => 'cache',
];