DrT*_*eth 5 docker docker-compose
我在 docker-compose.yml 中有以下内容
web:
image: my_web
build:
context: ./
dockerfile: web.docker
container_name: my_web
networks:
- front
ports:
- "80:8080"
volumes:
- wwwlogs:/var/logs/www
env_file:
- ${SERVICE_ENVIRONMENT}.env
links:
- revproxy
logging:
driver: awslogs
options:
awslogs-group: my-web-group
awslogs-region: us-east-1
awslogs-stream-prefix: my-web
Run Code Online (Sandbox Code Playgroud)
这在生产中运行良好,并按预期将所有内容发送到 CloudWatch。但是,当我想在本地使用相同的 docker 文件(不要发送到 AWS,只需登录到 STDOUT/STDERR)和暂存(我想发送到不同的 awslogs 的地方)时,我不清楚这应该如何工作-组/-前缀)。
有什么想法吗?一般来说,我不喜欢为每个环境使用单独的 docker 文件 - 重复的代码条目增加了某些东西被遗漏或未正确维护的可能性。但是 Docker 似乎有条件地提供东西的能力有限。
这是 docker 中的更多限制,您不能指定多个日志记录驱动程序。使用单个 docker-compose 文件发送到多个目的地会更加复杂,因为 docker 不支持它,但它是可行的。
例如,您可以使用Fluentd 日志记录驱动程序,并且必须为Fluentd启动单独的 sidecar 容器。然后在您的配置中,您可以根据环境创建路由规则。您可以使用fluidd CloudWatch 日志插件之类的工具将 dev 路由到“stdout”,并将 prod 路由到“awslogs” 。
这是关于如何使用 docker-compose 配置 Fluentd 的另一个示例。
| 归档时间: |
|
| 查看次数: |
554 次 |
| 最近记录: |