我正在使用卷,以便两个容器共享一个日志文件(filebeat需要查看Web服务器的日志)
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/
我知道./compose/production/logs/uwsgi
是主机上的目录。 (这是我正在运行的计算机docker-compose up
将其部署到生产环境时,我将创建图像并将其上传到ECS
我不知道如何在ECS上运行图像,但是我没有配置任何docker-compose
相关的设置。因此它必须作为普通的docker映像运行。
我担心共享的卷将不会在生产ECS上共享。
运行时如何使两个容器共享一个文件/目录? 还是应该结合服务并创建1张图片?
- 我可以考虑创建一个单独的卷,但是我不确定如果有多个Web容器,它将如何处理,它们将共享一个日志文件,这不是我想要的。
- 如果我组合服务,并在Web服务中安装Filebeat(通过apt)。
- 它倾向于创建整体服务,如果可能的话,我想避免
- 我不确定我当前的设置是否可以在生产环境(ECS)上使用,是否有一种方法可以在不部署到ECS的情况下进行试验?