You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何延迟绑定挂载直至Docker Compose卷完成初始填充?

解决Bitnami WordPress容器首次启动绑定主题目录导致初始化失败的问题

我基于Bitnami WordPress容器镜像编写了如下Compose文件:

version: '2'
services:
  mariadb:
    image: docker.io/bitnami/mariadb:10.11.2
    volumes:
      - 'mariadb_data:/bitnami/mariadb'
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - MARIADB_USER=bn_wordpress
      - MARIADB_DATABASE=bitnami_wordpress
  wordpress:
    image: docker.io/bitnami/wordpress:6.2.0-debian-11-r14
    ports:
      - '80:8080'
      - '443:8443'
    volumes:
      - 'wordpress_data:/bitnami/wordpress'
      - './:/bitnami/wordpress/wp-content/themes/my-theme'
    depends_on:
      - mariadb
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - WORDPRESS_DATABASE_HOST=mariadb
      - WORDPRESS_DATABASE_PORT_NUMBER=3306
      - WORDPRESS_DATABASE_USER=bn_wordpress
      - WORDPRESS_DATABASE_NAME=bitnami_wordpress
volumes:
  mariadb_data:
    driver: local
  wordpress_data:
    driver: local

我的需求是将本地项目目录挂载到容器内的/bitnami/wordpress/wp-content/themes/my-theme,让WordPress直接使用我的项目作为主题。但首次运行docker-compose up时出现了问题:

根据Docker卷的文档说明,新建卷时容器对应目录的文件会被复制到卷中,这正是我需要的WordPress系统文件初始化方式。但首次启动时,因为绑定挂载指向了卷内的子目录,导致卷被判定为非空,Docker就不会复制容器内的文件,最终报错:

my-project-wordpress-1  | Error: 'wp-config.php' not found.
my-project-wordpress-1  | Either create one manually or use `wp config create`.
my-project-wordpress-1 exited with code 1

注释掉绑定挂载的那一行后,容器可以正常初始化,但这样就无法关联我的项目目录;等初始化完成后再取消注释绑定挂载,容器就能正常运行,但这个手动步骤对其他用户来说不够友好。我试过用depends_on配置初始化容器、设置外部卷、拆分Compose配置等方法,效果都不理想,请问有没有更优的解决方案?


内容的提问来源于stack exchange,提问作者dodov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 17:17:38