【发布时间】:2018-06-27 08:10:48
【问题描述】:
我的 docker-compose.yml 如下
version: '3.3'
services:
db:
image: mysql:5.7
container_name: mysql-wordpress
volumes:
- db_data:/var/lib/mysql
ports:
- "3300:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
container_name: wordpress
depends_on:
- db
image: wordpress:latest
volumes:
- ./wp-content:/var/www/html/wp-content
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
ports:
- "80:80"
- "443:443"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
depends_on:
- db
restart: always
ports:
- "8080:80"
environment:
- PMA_ARBITRARY=1
volumes:
db_data:
当我开始docker-compose up -d
wp-content目录与容器wp-content目录内的host内容不同。
当我做docker inspect WordPress:
"Mounts": [
{
"Type": "bind",
"Source": "/rootfs/home/rancher/projects/tabletop/uploads.ini",
"Destination": "/usr/local/etc/php/conf.d/uploads.ini",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/rootfs/home/rancher/projects/tabletop/wp-content",
"Destination": "/var/www/html/wp-content",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "volume",
"Name": "d0a4f5ad342db0db782b41dd676aa0e58a324b5e7db1e56086bca5550a9ffdc3",
"Source": "/var/lib/docker/volumes/d0a4f5ad342db0db782b41dd676aa0e58a324b5e7db1e56086bca5550a9ffdc3/_data",
"Destination": "/var/www/html",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
似乎第三个挂载可能覆盖了我的绑定挂载。但我不知道它来自哪里。我怎样才能在它之后挂载我的 wp-content?
更新: 这个问题只发生在 rancherOS 、 coreOS 和 linux Mint 上,它工作正常
【问题讨论】:
-
尝试添加
- wp-html:/var/www/html作为第一个命名卷映射,看看是否有帮助?如果需要,定义wp-html卷 -
@TarunLalwani 尝试了它仍然没有工作,尽管我已经定义了它,但它最终添加了命名值。
-
我真的什么都不知道,但我在 docker-compose 中注意到您有容器名称“wordpress”,但您使用容器名称“WordPress”进行检查。容器名称是否区分大小写 - 在这种情况下,您正在查看错误的容器。如果它们不敏感并且您确定它们是同一个cluld,您可以编辑问题以消除来源和混淆。
标签: docker docker-compose bind docker-volume rancheros