Heroku不支持volume功能,部署应用时可使用什么替代方案?
Heroku Volume功能替代方案及Docker Compose适配方法
Heroku 平台的dyno采用临时文件系统,所有dyno重启、重新部署后本地写入的内容都会被重置,官方本身也不支持Docker Volume功能,你可以按照以下场景选择替代方案:
针对你现有docker-compose.yml的适配方案
你配置了两类Volume,分别对应不同的适配逻辑:
- 数据库持久化Volume(
db_data:/var/lib/mysql):不要在Heroku上自行部署MySQL容器,直接使用Heroku官方提供的MySQL类托管附加组件即可,数据会由服务商完成持久化存储,不需要你自行维护存储卷。部署后直接在Heroku控制台将WORDPRESS_DB_HOST、WORDPRESS_DB_USER、WORDPRESS_DB_PASSWORD、WORDPRESS_DB_NAME几个环境变量配置为附加组件提供的对应参数即可,无需保留docker-compose里的db服务配置。 - 本地代码同步Volume(
./:/var/www/html):这是本地开发阶段用于实时同步代码的配置,部署到Heroku时需要将所有WordPress核心文件、自定义主题、插件、静态资源直接打包到Docker镜像中,构建阶段通过COPY指令写入镜像的/var/www/html目录,不依赖运行时挂载。
额外注意事项
如果你的WordPress站点需要支持用户上传媒体文件,不要将文件存储在dyno本地,需要对接第三方对象存储服务,安装对应的WordPress插件将上传内容直接写入对象存储,避免dyno重启后文件丢失。
内容的提问来源于stack exchange,提问作者Dima Kambalin
相关产品推荐
相关产品推荐

