【问题标题】:Using Docker compose and volumes to persist uploaded pictures directory使用 Docker compose 和 volumes 持久化上传的图片目录
【发布时间】:2020-08-11 00:57:25
【问题描述】:

我正在从事电子商务,我希望能够从客户端上传产品照片并将它们保存在服务器上的目录中。

我实现了这个功能,但后来我明白,由于我们使用 docker 进行部署,所以我保存图片的目录不会保留。当我搜索时,我有点意识到我应该使用卷并在 docker compose 中映射该目录。我是一个完整的新手后端开发人员(我在前端工作)所以我不太确定我应该做什么。

这是撰写文件:

version: '3'
services:
  nodejs:
    image: node:latest
    environment:
      - MYSQL_HOST=[REDACTED]
      - FRONT_SITE_ADDRESS=[REDACTED]
      - SITE_ADDRESS=[REDACTED]
    container_name: [REDACTED]
    working_dir: /home/node/app
    ports:
      - "8888:7070"
    volumes:
      - ./:/home/node/app
    command: node dist/main.js
    links:
      - mysql

  mysql:
    environment:
      - MYSQL_ROOT_PASSWORD=[REDACTED]
    container_name: product-mysql
    image: 'mysql:5.7'
    volumes:
      - ../data:/var/lib/mysql

如果我想将我的照片存储在../static/images(相对于我的项目的根目录),我应该怎么做以及如何在我的后端代码中引用这个路径?

后端在 nodejs (Nestjs) 中。

【问题讨论】:

    标签: node.js docker docker-compose nestjs


    【解决方案1】:

    您必须创建一个volume 并告诉 docker-compose/docker stack 将其安装在容器中,指定您想要的路径。请参阅文件末尾的volumesnodejs 服务上的volumes 选项。

    version: '3'
    services:
      nodejs:
        image: node:latest
        environment:
          - MYSQL_HOST=[REDACTED]
          - FRONT_SITE_ADDRESS=[REDACTED]
          - SITE_ADDRESS=[REDACTED]
        container_name: [REDACTED]
        working_dir: /home/node/app
        ports:
          - "8888:7070"
        volumes:
          - ./:/home/node/app
          - static-files:/home/node/static/images
        command: node dist/main.js
        links:
          - mysql
    
      mysql:
        environment:
          - MYSQL_ROOT_PASSWORD=[REDACTED]
        container_name: product-mysql
        image: 'mysql:5.7'
        volumes:
          - ../data:/var/lib/mysql
    volumes:
     static-files:{}
    

    执行此操作时,一个空容器将被装箱以保存您的数据,并且每次新容器挂载此路径时,您都可以获取存储在其上的数据。我建议对mysql 使用相同的方法,而不是在主机中保存数据。

    https://docs.docker.com/compose/compose-file/#volume-configuration-reference

    【讨论】:

      猜你喜欢
      • 2022-10-21
      • 1970-01-01
      • 2021-01-15
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 2019-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多