rbdwllr/dusty
Composer 安装命令:
composer require rbdwllr/dusty
包简介
A WordPress starter repo which uses Composer and Docker.
README 文档
README
Dusty is an example WordPress starter repo based around Composer and Docker. It allows you to create WordPress repos without the need to store core WordPress files in your Git repository. This makes for far easier deployments and cleaner code. It also allows you to load in non-WordPress packages such as PHPDotEnv via Composer.
Setup
To make use of Dusty you will need to install both Composer and Docker locally. Composer is a PHP package manager linked to Packagist and Docker is a containerisation platform that allows you to easily generate development and production environments.
Installation
Installation assumes you are working in a Linux or a Linux like environment.
Install using Composer:
composer create-project --no-dev --no-interaction --ignore-platform-reqs rbdwllr/dusty [project-name]
Build Docker:
docker-compose build docker-compose up -d
Create .env file with WordPress salts:
docker-compose exec web composer make-environment
Once these steps have been completed go to localhost:8080 to use WordPress and finish off the installation process.
Package and Plugin Management
By default Composer can pull in packages from Packagist, and this is great if you wish to extend WordPress with more general PHP libraries and frameworks. This though does not help you easily manage plugins and themes. Dusty though integrates with a package manager called WPackagist which is the WordPress equivalent of Packagist for plugins and themes.
You can add your plugins and themes to your composer.json file in exactly the same way as you add PHP packages. They will also be placed in the relevant WordPress directories, rather than the vendor folder.
// Example composer.json config, using WPackagist. "repositories":[ { "type":"composer", "url":"https://wpackagist.org" } ], "require": { "wpackagist-plugin/wordpress-seo": "^11.0", "wpackagist-plugin/advanced-custom-fields": "^5.0", "wpackagist-theme/twentynineteen": "^1.0", }, "extra": { "installer-paths": { "public/wp-content/mu-plugins/{$name}": ["type:wordpress-muplugin"], "public/wp-content/plugins/{$name}": ["type:wordpress-plugin"], "public/wp-content/themes/{$name}": ["type:wordpress-theme"] }, "wordpress-install-dir": "public/wordpress" }
Use Private Repos
Sometimes you'll wish to keep some of your code private but still pull it in via Composer. For instance you may have a WordPress theme that contains branded material and custom code.
You can do this by adding a Version Control System repository to your Composer config:
"repositories":[ { "type":"composer", "url":"https://wpackagist.org" }, { "type": "vcs", "url": "git@github.com:vendor/repo-name.git" } ],
Note: Your theme will require a composer.json file with config which defines it as a WordPress theme. You will need a similar setup if you are creating a private plugin, but you will set the type as "type": "wordpress-plugin".
// Example composer.json for a WordPress theme. { "name": "vendor/theme", "description": "My cool theme.", "type": "wordpress-theme", "license": "proprietary", "require": {} }
Repository SSH Keys
Usually if you are using a VCS repository, such as GitHub, it will be private and you will need to allow Composer to authenticate with the repository. The easiest way to do this is via SSH keys.
To give Docker access to these SSH keys you will need to copy them into the web container and amend the user privileges:
# Copy your local private key into the root/.ssh folder of the web container. docker cp ~/.ssh/id_rsa wordpress_web:/root/.ssh # Amend the privileges of the .ssh folder to 600 in the web container. docker-compose exec web chmod 600 -R /root/.ssh
Once this is done you can run composer install with no interaction docker-compose exec web composer install --no-dev --no-interaction.
Note: The keys will be stored in a separate Docker volume so will persist even if you delete the container.
Managing MySQL
On occasions you will need to interact with MySQL (MariaDB) directly and you can do this via a SQL GUI tool such as SequelPro or HeidiSQL. But you may also wish to interact with the database via the CLI which can be done easily via docker-compose.
# Access MySQL Database. docker-compose exec data mysql
You may also wish to import data into the database via the CLI too, Dusty makes this easy. When you create Dusty via docker-compose a directory called data is created both locally and in the container. You can then drop SQL files into the local data directory and they will be available to the container. Then you can access the container and import the files.
docker-compose exec data bash cd /var/www/html/data mysql wordpress < example.sql
You can also dump data back out to the local data directory in a similar way.
docker-compose exec data bash cd /var/www/html/data mysqldump wordpress > my-dump.sql
Useful Resources
Cat Tax
This is Dusty, AKA Princess Dustle-Puff, Ruler of All Things Soft and Scratchable, I named this repo after her. She is sat in my code chair, I think she's trying to help...
rbdwllr/dusty 适用场景与选型建议
rbdwllr/dusty 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 223 次下载、GitHub Stars 达 15, 最近一次更新时间为 2019 年 05 月 28 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 rbdwllr/dusty 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 rbdwllr/dusty 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 223
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 15
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2019-05-28