Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker中的卷是否在ECS中合成?_Docker_Docker Compose_Amazon Ecs - Fatal编程技术网

Docker中的卷是否在ECS中合成?

Docker中的卷是否在ECS中合成?,docker,docker-compose,amazon-ecs,Docker,Docker Compose,Amazon Ecs,我正在使用卷,以便两个容器共享一个日志文件(filebeat需要查看Web服务器的日志) 我知道/compose/production/logs/uwsgi是主机上的目录。(这是我正在运行的机器docker compose up 当我将其部署到生产环境时,我将创建映像并上传到ECS 我不知道ECS上的镜像是如何运行的,但是我没有配置任何docker compose相关设置,所以它必须作为普通docker镜像运行 我担心的是,共享卷将不会在生产ECS上共享 运行时如何使两个容器共享一个文件/目录?

我正在使用卷,以便两个容器共享一个日志文件(filebeat需要查看Web服务器的日志)

我知道
/compose/production/logs/uwsgi
是主机上的目录。(这是我正在运行的机器
docker compose up

当我将其部署到生产环境时,我将创建映像并上传到
ECS
我不知道ECS上的镜像是如何运行的,但是我没有配置任何
docker compose
相关设置,所以它必须作为普通docker镜像运行

我担心的是,共享卷将不会在生产ECS上共享

运行时如何使两个容器共享一个文件/目录? 或者我应该合并服务并创建一个映像

  • 我可以考虑创建一个单独的卷,但我不确定它将如何处理如果有多个web容器,它们将共享一个日志文件,而这不是我想要的
  • 如果我组合服务,并在web服务中安装filebeat(通过apt)。
    • 如果可能的话,它倾向于创建我想要避免的monolith服务
  • 我不确定我当前的设置是否可以在生产环境(ECS)中使用,是否有一种方法可以在不部署到ECS的情况下进行试验
   web:
     volumes:
       #Logs are mounted to a relative path. These are also accessed by Filebeat and consumed by the uwsgi module.
       - ./compose/production/logs/uwsgi/:/var/log/uwsgi/
   filebeat:
     restart: always
     build:
       context: .
       dockerfile: ./compose/production/filebeat/Dockerfile
       args:
         - VERSION=${VERSION}
     image: filebeat
     volumes:
       - ./compose/production/logs/uwsgi/:/var/log/uwsgi/