最近我在 PHP 中开发了一个使用 docker 运行的应用程序,包括文件上传过程。
然而,当容器退出时,实际上传到服务器的文件将丢失。
你是怎么处理这件事的? 请告诉我如何使文件持久化。
例如:
- 使用 S3 等外部服务器存储文件。
- 为卷使用 Docker 存储功能。
最佳答案
这可以使用 docker compose 来完成。您将能够通过将它们安装到外部主机目录来访问容器内的文件。上传到 wordpress 的文件存储在 wp-content/uploads
中,您可以使用此示例 docker-compose 文件安装它:
version: '3'
services:
mysql-database:
image: mysql
container_name: mysql-database
volumes:
- ./mysql/docker-entrypoint-initdb.d/:/docker-entrypoint-initdb.d
ports:
- 3306:3306
wordpress-sites:
image: wordpress:custom
build:
context: ./wordpress
dockerfile: wordpress.dockerfile
container_name: wordpress-sites
links:
- mysql-database
depends_on:
- mysql-database
ports:
- 8080:80
volumes:
- ./wordpress/wp-content:/var/www/html/wp-content
关于 volumes 的文档应该能帮到你。
关于php - 如何使实际图像文件在使用 docker 运行的文件上传过程中持久存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44771803/