最近,我开发了一个使用docker在PHP中运行的应用程序,包括文件上传过程。

但是,当容器退出时,实际上传到服务器的文件将丢失。

您如何处理此事?
请告诉我如何使文件持久化。

例如:

  • 使用外部服务器(如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的文档应该可以为您提供帮助。

    10-04 21:45
    查看更多