繁体   English   中英

使用 docker-compose 在 postgresql 中启用日志记录

[英]Enable logging in postgresql using docker-compose

我在 docker-compose 文件中使用 Postgres 作为服务。 我希望在执行docker-compose up时启用日志记录到日志文件。 启用日志记录的一种方法是编辑postgres.conf文件,但在这种情况下它没有用。 另一种方法是做这样的事情

docker run --name postgresql -itd --restart always sameersbn/postgresql:10-2 -c logging_collector=on

但这也没什么用,因为我不是从图像启动它,而是作为 docker-compose 服务。 知道如何在 Postgres 中启用日志记录的情况下启动 docker-compose up 吗???

这是在 compose 中运行命令-c的 docker-compose

          version: '3.3'
          services:
            postgresql:
              image: postgres:11.5
              container_name: platops_postgres
              volumes: ['platops-data:/var/lib/postgresql/data/', 'postgress-logs:/var/log/postgresql/']
              command: "postgres", "-c", "logging_collector=on", "-c", "log_directory=/logs", "-c", "log_filename=postgresql.log", "-c", "log_statement=all"
              environment:
                - POSTGRES_USER=postgresql
                - POSTGRES_PASSWORD=postgresql
              ports: ['5432:5432']
          volumes:
            platops-data: {}
              # uncomment and set the path of the folder to maintain persistancy
              # data-postgresql:
              # driver: local
              # driver_opts:
              #   o: bind
              #   type: none
              #   device: /path/of/db/postgres/data/
            postgress-logs: {}
              # uncomment and set the path of the folder to maintain persistancy
              # data-postgresql:
              # driver: local
              # driver_opts:
              #   o: bind
              #   type: none
              #   device: /path/of/db/postgres/logs/

有关更多信息,您可以查看容器/postgress

  • 就像你用 docker run 命令一样:
docker run --name postgresql -itd --restart always sameersbn/postgresql:10-2 -c logging_collector=on

ENTRYPOINT ["/sbin/entrypoint.sh"]添加-c logging_collector=on参数以启用日志记录。 ( Dockerfile )。

  • docker-compose.yml文件中,使用command:像这样:

version: "3.7"
services:
  database:
    image: sameersbn/postgresql:10-2
    command: "-c logging_collector=on"

# ......

当 Postgresql contaienr 运行时,它会运行命令: /sbin/entrypoint.sh -c logging_collector=on

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM