我正在尝试使用Docker在本地打开一个Wordpress网站。
以下是此容器的docker-compose.yml文件:
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
Dockerfile:
FROM orchardup/php5
ADD . /code
在终端中,我输入docker-compose up -d
。然后我可以访问localhost:8080
的网站,但它不是真正的网站 - 它只是一个Wordpress模板。我猜我必须以某种方式将.sql文件合并到目录中?我该怎么做呢?我是否需要在.yml文件中指定它?
答案 0 :(得分:2)
只需添加一个卷映射即可将本地文件夹映射到/docker-entrypoint-initdb.d容器文件夹,例如:./init-db:/docker-entrypoint-initdb.d
。该文件将在首次容器启动时加载。
考虑以下docker-compose.yml:
/path-to-sql-files-on-your-host
主机文件夹中)docker-compose down -v
销毁容器和卷docker-compose up
来重新创建它们。 -
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
- /path-to-sql-files-on-your-host:/docker-entrypoint-initdb.d
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
答案 1 :(得分:0)
根据MySQL-Docker documentation,您有两个选择。
在运行“ db”泊坞窗后,只需使用mysql客户端连接到它,然后导入.sql转储即可。阅读“从MySQL命令行客户端连接到MySQL”部分。如果您不使用docker,则可以像这样mysql fooDB < fooDB_dump.sql
还原此备份。与docker命令类似。
Docs,“初始化一个新实例”说:“ ...它将执行在/docker-entrypoint-initdb.d中找到的扩展名为.sh,.sql和.sql.gz的文件”看起来更像您想要的。只需将.sql文件复制到docker映像中的该位置,然后它将自动解析它。