yii-frameworkアプリケーション用にDockerで作業環境をセットアップする

作業環境を迅速に向上させるには、多くの方法があります。 それらの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; } }
      
      





すべてのコマンドはルートフォルダーから実行されます。









Upd:Yii2の公式Dockerイメージが常に存在することに言及する価値があります。








All Articles