Ryo*_*shi 9 mysql wordpress docker dockerfile docker-compose
我想使用docker在一个共享数据库中运行多个WordPress网站.
是否可以指定数据库并为某个sql文件设置适当的卷,以便为其docker-compose.yml文件中的每个容器初始化WordPress ?
例如,我有三个docker-compose.yml文件用于共享容器,siteA和siteB.
当我运行docker-compose up时./shared,将为这两个站点(example_a和example_b)创建两个DB.
当我运行docker-compose up时./siteA,我想将当前的数据库更改为example_a,并通过sql volumed从一定数量的数据初始化站点./siteA/mysql/setup.sql.
siteB也是如此.
我知道我可以指定一个数据库和体积像-
WORDPRESS_DB_NAME: example_a和- ./db-data/mysql.dump.sql:/docker-entrypoint-initdb.d/install_wordpress.sql在MySQL的部分docker-compose.yml,但我只有一个共享MySQL并不能指定DB和体积为每个站点.
我有多个docker-compose.yml文件看起来像下面.
./shared/docker-compose.yml
version: "2"
services:
proxy:
image: jwilder/nginx-proxy
privileged: true
container_name: proxy
ports:
- 80:80
- 443:443
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./certs:/etc/nginx/certs:ro
restart: always
logging:
options:
max-size: 5m
max-file: "10"
mysql:
image: mysql:5.7
container_name: mysql
command: >
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--max-allowed-packet=128M
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=foobar
restart: always
volumes:
- db-data:/var/lib/mysql
- ./mysql/sql-setup.sql:/docker-entrypoint-initdb.d/sql-setup.sql # to create multiple databases (e.g. example_a, example_b)
logging:
options:
max-size: 5m
max-file: "10"
volumes:
db-data:
driver: local
networks:
default:
external:
name: shared
Run Code Online (Sandbox Code Playgroud)
./siteA/docker-compose.yml
version: "2"
services:
example_a_wordpress:
image: wordpress
container_name: a.example
environment:
WORDPRESS_DB_NAME=example_a
WORDPRESS_DB_PASSWORD=foobar
VIRTUAL_HOST: a.example.dev
external_links:
- mysql
restart: always
volumes:
- ./dist/theme:/var/www/html/wp-content/themes/main
- ./dist/assets:/var/www/html/assets
logging:
options:
max-size: 5m
max-file: "10"
networks:
default:
external:
name: shared
Run Code Online (Sandbox Code Playgroud)
./siteB/docker-compose.yml
version: "2"
services:
example_b_wordpress:
image: wordpress
container_name: b.example
environment:
WORDPRESS_DB_NAME=example_b
WORDPRESS_DB_PASSWORD=foobar
VIRTUAL_HOST: b.example.dev
external_links:
- mysql
restart: always
volumes:
- ./dist/theme:/var/www/html/wp-content/themes/main
- ./dist/assets:/var/www/html/assets
logging:
options:
max-size: 5m
max-file: "10"
networks:
default:
external:
name: shared
Run Code Online (Sandbox Code Playgroud)
小智 0
您是否尝试在中设置表前缀wp_config.php
$table_prefix = 'yourcustomname_';
Run Code Online (Sandbox Code Playgroud)
这应该可以解决两个站点上一个数据库连接的问题。
| 归档时间: |
|
| 查看次数: |
1821 次 |
| 最近记录: |