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

如何在bitnami/moodle容器中正确挂载php.ini文件

问题描述

需要编辑bitnami/moodle容器内的php.ini文件(路径为/opt/bitnami/php/etc/php.ini),但无法在容器中安装文本编辑器,尝试将该文件所在路径挂载到宿主机时,容器无法启动:

  • 挂载/opt/bitnami/php/etc目录时,报错:cp: cannot stat '/opt/bitnami/php/etc/common.conf.disabled': No such file or directory
  • 挂载/opt目录时,报错:
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/opt/bitnami/scripts/moodle/entrypoint.sh": stat /opt/bitnami/scripts/moodle/entrypoint.sh: no such file or directory: unknown

当前使用的docker-compose.yml片段:

services:
  moodle:
    platform: linux/x86_64
    container_name: foo_moodle
    depends_on:
      - moodle_db
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8080:8080"
      - "8443:8443"
    restart: unless-stopped
    environment:
      - MOODLE_DATABASE_TYPE=pgsql
      - MOODLE_DATABASE_HOST=moodle_db
      - MOODLE_DATABASE_PORT_NUMBER=5432
      - MOODLE_DATABASE_USER=${MOODLE_DB_USER}
      - MOODLE_DATABASE_NAME=${MOODLE_DB_NAME}
      - MOODLE_DATABASE_PASSWORD=${MOODLE_DB_PASS}
      - MOODLE_SITE_NAME=${MOODLE_SITE_NAME}
    volumes:
      - ./moodle/mount_moodle:/bitnami/moodle
      - ./moodle/mount_moodle_data:/bitnami/moodledata
解决方案

不要挂载整个目录,而是单独挂载php.ini文件,步骤如下:

  1. 先将容器内的php.ini文件复制到宿主机的目标路径:
# 若容器未启动,先临时启动容器
docker start foo_moodle
# 复制容器内的php.ini到宿主机./moodle目录
docker cp foo_moodle:/opt/bitnami/php/etc/php.ini ./moodle/php.ini
# 停止容器以便后续重新启动
docker stop foo_moodle
  1. 修改docker-compose.yml的volumes部分,添加单个文件挂载:
volumes:
  - ./moodle/mount_moodle:/bitnami/moodle
  - ./moodle/mount_moodle_data:/bitnami/moodledata
  - ./moodle/php.ini:/opt/bitnami/php/etc/php.ini
  1. 重新启动容器:
docker-compose up -d

原因说明

  • Bitnami容器的启动脚本会初始化配置目录下的文件,挂载整个/opt/bitnami/php/etc目录会覆盖容器内原有的依赖配置文件(如common.conf.disabled),导致启动脚本执行失败。
  • 挂载整个/opt目录会直接覆盖容器内的核心启动脚本(如/opt/bitnami/scripts/moodle/entrypoint.sh),容器找不到启动入口自然无法启动。
  • 单个文件挂载只会替换目标配置文件,不会影响容器内其他必要文件,是修改单配置文件的正确方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 09:42:44