作業環境を迅速に向上させるには、多くの方法があります。 それらの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/* # ADD docker/conf/nginx/site.conf /etc/nginx/sites-available/site.conf # RUN ln -s /etc/nginx/sites-available/site.conf /etc/nginx/sites-enabled/site.conf
同じ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; ## listen for ipv4 root /var/www/app/frontend/web/; index index.php; access_log /var/www/app/log/frontend-access.log; error_log /var/www/app/log/frontend-error.log; location / { try_files $uri $uri/ /index.php$is_args$args; } # uncomment to avoid processing of calls to non-existing static files by Yii #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { # try_files $uri =404; #} #error_page 404 /404.html; # deny accessing php files for the /assets directory location ~ ^/assets/.*\.php$ { deny all; } location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/var/run/php-fpm.sock; try_files $uri =404; } location ~* /\. { deny all; } }
すべてのコマンドはルートフォルダーから実行されます。
-
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イメージが常に存在することに言及する価値があります。