作業環境を迅速に向上させるには、多くの方法があります。 それらの1つは、Dockerコンテナーで必要なすべてのサービスを上げることです。 Yiiフレームワークでの新しいプロジェクトの作成をスピードアップするために、私たちのチームの開発者が使用するような小さな指示を書きました。
最初は、docker、docker-compose、php、php-composerが必要です。
プロジェクトとdockerフォルダーを含むフォルダーを作成します。
mkdir project-dir cd project-dir && mkdir docker
dockerフォルダーで、 Dockerfileコンテナーの構成ファイルを作成します。
# nginx php FROM richarvey/nginx-php-fpm # ADD app /var/www/app # RUN rm -Rf /etc/nginx/sites-enabled
同じdockerフォルダーで、 docker-compose.ymlを作成して開発環境を上げます。
# docker-compose version: '3' # deafult networks: default: driver: bridge # services: # - app: # Dockerfile build: # context: ../ dockerfile: ./docker/Dockerfile # 80 ports: - "80:80" # networks: - default # db depends_on: - db # volumes: - "../app:/var/www/app" # nginx - "./conf/nginx:/etc/nginx/sites-available" # db: image: mysql:latest # networks: - default # ports: - "3336:3306" # environment: # MYSQL_ROOT_PASSWORD: root # MYSQL_DATABASE: yii-template-db # volumes: - "./database:/var/lib/mysql"
nginxの場合、 docker / conf / nginxフォルダーとその中にsite.confファイルを作成します。 ファイルは、プロジェクトでnginxを構成する方法に応じて変更される場合があります。 ローカルで変更できます ボリュームを介して接続します。 ただし、コンテナ内でnginxを再起動することを忘れないでください: nginx -s reload
server { charset utf-8; client_max_body_size 128M; listen 80;
すべてのコマンドはルートフォルダーから実行されます。
composer create-project --prefer-dist yiisoft/yii2-app-advanced app
作成コマンドcomposer create-project --prefer-dist yiisoft/yii2-app-advanced app
ます。- 環境
docker-compose -f docker/docker-compose.yml up -d
実行します - プロジェクト
app/init --env=Development --overwrite=All
を初期化しapp/init --env=Development --overwrite=All
- エディターでapp / common / config / main-local.phpファイルを開き、データベースに接続するためのデータを入力します。 この例では、rootとしてrootパスワードがあり、DBホストはdb、データベース名はyii-template-dbです。
- コンテナ
docker exec -it docker_app_1 bash
接続します - データベース移行コマンド
php /var/www/app/yii migrate
実行します - ログフォルダー
mkdir /var/www/app/log
作成しmkdir /var/www/app/log
- そして
exit
- ブレーキサービス
docker-compose -f docker/docker-compose.yml down
- もう一度実行してください
docker-compose -f docker/docker-compose.yml up -d
- ブラウザでlocalhostを開き、新しいサイトを見てください。
Upd:Yii2の公式Dockerイメージが常に存在することに言及する価値があります。