使用Docker和npm脚本(Browsersync)创建WordPress编码环境
为了将静态页面创建与npm-scripts(EJS、SCSS、JavaScript)合并到使用Docker进行WordPress构建的环境中,我查找了相关参考页面和步骤,并将其记录下来。
下载并安装Docker DesktopDocker官方
※对于macOS系统,需要注意的是,应用程序在Intel芯片和Apple芯片上是不同的。
1. 创建启动所需的文件
创建docker-compose.yml文件
version: '3'
services:
db:
# platform: linux/x86_64 # Appleシリコンに対応する場合
image: mysql:5.7
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci # MySQLの文字コードをUTF-8に指定
volumes:
- db_data:/var/lib/mysql
ports:
- "3306:3306"
restart: always
environment:
TZ: 'Asia/Tokyo'
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:php7.4
volumes:
- ./wp:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_TABLE_PREFIX: wp_ # データベースの接頭辞
WORDPRESS_DEBUG: 1 # WordPressのデバックモードON
phpmyadmin:
image: phpmyadmin:5.2.0
volumes: # phpMyAdminの設定ファイル読み込み
- ./phpmyadmin-misc.ini:/usr/local/etc/php/conf.d/phpmyadmin-misc.ini
restart: always
ports:
- "8888:80"
environment:
- PMA_ARBITRARY=1
- PMA_HOST=db
- PMA_USER=wordpress
- PMA_PASSWORD=wordpress
volumes:
db_data: # データベースの永続化
不同软件版本的更改方法 de从每个软件的Docker Hub页面中查找标签,并修改docker-compose.yml文件中的图像部分。
version: '3'
services:
db:
# platform: linux/x86_64 # Appleシリコンに対応する場合
image: mysql:5.7
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci # MySQLの文字コードをUTF-8に指定
volumes:
- db_data:/var/lib/mysql
ports:
- "3306:3306"
restart: always
environment:
TZ: 'Asia/Tokyo'
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:php7.4
volumes:
- ./wp:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_TABLE_PREFIX: wp_ # データベースの接頭辞
WORDPRESS_DEBUG: 1 # WordPressのデバックモードON
phpmyadmin:
image: phpmyadmin:5.2.0
volumes: # phpMyAdminの設定ファイル読み込み
- ./phpmyadmin-misc.ini:/usr/local/etc/php/conf.d/phpmyadmin-misc.ini
restart: always
ports:
- "8888:80"
environment:
- PMA_ARBITRARY=1
- PMA_HOST=db
- PMA_USER=wordpress
- PMA_PASSWORD=wordpress
volumes:
db_data: # データベースの永続化
不同软件版本的更改方法 de从每个软件的Docker Hub页面中查找标签,并修改docker-compose.yml文件中的图像部分。
WordPress标签| Docker Hub
MySQL标签| Docker Hub
phpMyAdmin标签| Docker Hub
根据上述内容,只需提供一种中文表达方式:
例:
image: wordpress:php7.4
image: wordpress:latest
image: wordpress:php8.1-apache
请参考。快速开始:使用Compose和WordPress—— Docker-docs-ja 20.10文档
【Docker】在本地搭建WordPress
在M1 Mac上使用Docker创建WordPress开发环境
登录到通过Docker启动的MySQL时遇到日文乱码问题。
创建一个phpmyadmin-misc.ini 文件。
为了更改phpMyAdmin的初始设置(例如,将数据库导入限制增加到最大2MB),需要创建phpmyadmin-misc.ini文件并进行设置写入。
allow_url_fopen = Off
max_execution_time = 600
memory_limit = 64M
post_max_size = 64M
upload_max_filesize = 64M
请参考Docker Compose PHPMyAdmin 上传限制放宽设置 | 优技录
2. Docker容器启动/关闭方法和WordPress安装方式
如何启动在启动Docker Desktop的情况下,
docker-compose up
为了更改phpMyAdmin的初始设置(例如,将数据库导入限制增加到最大2MB),需要创建phpmyadmin-misc.ini文件并进行设置写入。
allow_url_fopen = Off
max_execution_time = 600
memory_limit = 64M
post_max_size = 64M
upload_max_filesize = 64M
请参考Docker Compose PHPMyAdmin 上传限制放宽设置 | 优技录
2. Docker容器启动/关闭方法和WordPress安装方式
如何启动在启动Docker Desktop的情况下,
docker-compose up
如何启动在启动Docker Desktop的情况下,
docker-compose up
docker-compose up
只要在WordPress下载完成后,终端中显示以下消息,就可以访问localhost了。
Complete! WordPress has been successfully copied to /var/www/html
当您第二次及以后访问时,在显示以下信息时即可进行访问(不会显示”Complete!…”)。
Version: '5.7.40' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL)
WordPress的网址和首次安装
http://localhost:8000/
WordPress管理画面的网址
http://localhost:8000/wp-login.php
phpMyAdmin的地址
http://localhost:8888/
结束方式
Ctrl + C (これでphpMyAdmin停止)
↓
docker-compose down
3. 安装和启动Browsersync
创建package.json文件
npm init -y
安装Browsersync
npm i -D browser-sync
创建bs-config.js(Browsersync的配置文件)。
npx browser-sync init
Ctrl + C (これでphpMyAdmin停止)
↓
docker-compose down
创建package.json文件
npm init -y
安装Browsersync
npm i -D browser-sync
创建bs-config.js(Browsersync的配置文件)。
npx browser-sync init
npm init -y
npm i -D browser-sync
创建bs-config.js(Browsersync的配置文件)。
npx browser-sync init
npx browser-sync init
例子如下。
例子如下。
这是一个例子。
这是一个例子。
以下是一个例子。
以下是一个例子。
给你一个例子。
给你一个例子。
module.exports = {
"ui": {
"port": 3001
},
"files": [
"wp/**/*" // 監視したいフォルダに変更
],
"watchEvents": [
"change"
],
"watch": false,
"ignore": [],
"single": false,
"watchOptions": {
"ignoreInitial": true
},
"server": false,
"proxy": 'localhost:8000', // Dockerコンテナ起動時に使えるようになるlocalhostを指定
"port": 3000,
"middleware": false,
"serveStatic": [],
"ghostMode": {
"clicks": true,
"scroll": true,
"location": true,
"forms": {
"submit": true,
"inputs": true,
"toggles": true
}
},
"logLevel": "info",
"logPrefix": "Browsersync",
"logConnections": false,
"logFileChanges": true,
"logSnippet": true,
"rewriteRules": [],
"open": "internal",
"browser": "default",
"cors": false,
"xip": false,
"hostnameSuffix": false,
"reloadOnRestart": false,
"notify": false,
"scrollProportionally": true,
"scrollThrottle": 0,
"scrollRestoreTechnique": "window.name",
"scrollElements": [],
"scrollElementMapping": [],
"reloadDelay": 0,
"reloadDebounce": 500,
"reloadThrottle": 0,
"plugins": [],
"injectChanges": true,
"startPath": null,
"minify": true,
"host": null,
"localOnly": false,
"codeSync": true,
"timestamps": true,
"clientEvents": [
"scroll",
"scroll:element",
"input:text",
"input:toggles",
"form:submit",
"form:reset",
"click"
],
"socket": {
"socketIoOptions": {
"log": false
},
"socketIoClientConfig": {
"reconnectionAttempts": 50
},
"path": "/browser-sync/socket.io",
"clientPath": "/browser-sync",
"namespace": "/browser-sync",
"clients": {
"heartbeatTimeout": 5000
}
},
"tagNames": {
"less": "link",
"scss": "link",
"css": "link",
"jpg": "img",
"jpeg": "img",
"png": "img",
"svg": "img",
"gif": "img",
"js": "script"
},
"injectNotification": false,
"snippetOptions": {
"rule": {
"match": /<\/head>/i,
fn: function (snippet, match) {
return snippet + match;
}
}
}
};
请参考
当BrowserSync无法自动重新加载时的解决方法。
在 package.json 中添加用于启动 Browsersync 的脚本。
{
"name": "qiita-docker-wordpress",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start:server": "browser-sync start --config bs-config.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"browser-sync": "^2.27.11"
}
}
考试准备根据Node.js的版本,可能需要执行以下操作。
(该文章的版本为v19.3.0,无特殊错误。如果出现问题,终端将显示错误。)
-
package.jsonに”type”: “module”を追記
{
"name": "qiita-docker-wordpress",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start:server": "browser-sync start --config bs-config.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"browser-sync": "^2.27.11"
}
}
考试准备根据Node.js的版本,可能需要执行以下操作。
(该文章的版本为v19.3.0,无特殊错误。如果出现问题,终端将显示错误。)
-
package.jsonに”type”: “module”を追記
- package.jsonに”type”: “module”を追記
- bs-config.jsの拡張子を.cjsに変更
Browsersync的启动方法在已经启动Docker容器的情况下,输入以下命令以启动。
npm run start:server
请提供下列内容的中文原生版本,只需要给出一个选项:参考
npm run start:server
浏览器同步文档
浏览器同步命令行