docker - 可以在容器之间共享文件夹吗?

标签 docker docker-compose dockerfile

我想知道如何在容器之间共享应用程序文件夹。
我找到了有关“如何在容器和主机之间共享文件夹”的文章,但找不到“容器到容器”。

我想在后端编辑前端应用程序的代码,所以我需要共享文件夹。 <-这也是我的目标。

有什么办法吗?

我的配置是这样的

/
 - docker-compose.yml
|
 - backend application
  |
   _ Dockerfile
|
 -Frontend application
  |
   - Dockerfile


docker-compose.yml就像这样
version: '3'
services:
 railsApp: #<- backend application
    build: .
    command: bundle exec rails s -p 5000 -b '0.0.0.0'
    volumes:
      - code_share:/var/web/railsApp
    ports:
      - "3000:3000"
  reactApp: #<- frontend application
    build: .
    command: yarn start
    volumes:
      - code_share:/var/web/reactApp
    ports:
      - "3000:3000"

volumes:
 code_share:

最佳答案

您现在已经在前端和后端都安装了named volume

根据您的配置,您的应用程序/var/web/railsApp/var/web/reactApp将看到完全相同的内容。
因此,每当您在前端应用程序容器中写入/var/web/reactApp时,所做的更改也会反射(reflect)在后端/var/web/railsApp

要实现所需的功能(railsAppreactApp/var/web下),请尝试将主机上的文件夹安装到两个容器中。 (确保您的应用程序正确地写入了各自的/var/web文件夹。
mkdir -p /var/web/railsApp /var/web/reactApp
然后调整您的撰写文件:

version: '3'
services:
 railsApp: #<- backend application
    build: .
    command: bundle exec rails s -p 5000 -b '0.0.0.0'
    volumes:
      - /var/web:/var/web
    ports:
      - "3000:3000"
  reactApp: #<- frontend application
    build: .
    command: yarn start
    volumes:
      - /var/web:/var/web
    ports:
      - "3000:3000"

关于docker - 可以在容器之间共享文件夹吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61925358/

相关文章:

构建多阶段docker文件时docker build不会移除临时镜像

node.js - kafka Node 无法在本地环境中连接到kafka服务器

video - 在Docker中使用cvlc访问主机网络摄像头

docker - 我不明白 docker-compose : "volumes" and "services" 的语法

Java System.getenv 无法解析 docker-compose 中定义的环境变量

docker - 如何确保docker中的命令不重复

node.js - 无法连接到数据库 - NEST.JS 和 TypeORM

本地驱动程序的 docker-compose 卷语法以挂载文件

python - 使docker容器通过端口进行通信

python - 连接被拒绝 Docker 运行