我的目标是在host机器上运行一个程序,该程序将数据写入sqlite数据库,然后将其传输(挂载)到一个码头--编写运行Grafana的Grafana。
可以通过以下配置来完成此操作
grafana:
container_name: grafana
networks:
- backend
image: grafana/grafana:latest
volumes:
- ../database/database.sqlite:/home/grafana/database.sqlite
- ./grafana/grafana.ini:/etc/grafana/grafana.ini
- ./grafana/datasource.yml:/etc/grafana/provisioning/datasources/datasource.yaml
ports:
- 3000:3000
networks:
backend:
volumes:
grafana_data:
external: true但是,这只会在创建时挂载DB,任何写入db的新更改都不会反映在容器上。
我怎么才能解决这个问题?
发布于 2022-10-24 04:05:50
可以挂载一个活动的db (在本例中,我使用Sqlite在Grafana中进行仪表板可视化)。docker-compose.yml如下:
sqlite将存在,将被写入并从host machine中读取,这反过来将是binded到码头容器。
grafana:
container_name: grafana
networks:
- backend
image: grafana/grafana:latest
volumes:
- type: bind
source: database/database.sqlite
target: /home/grafana/database.sqlite # needs to be absolute
- ./grafana/grafana.ini:/etc/grafana/grafana.ini
- ./grafana/datasource.yml:/etc/grafana/provisioning/datasources/datasource.yaml
ports:
- 3000:3000
networks:
backend:
volumes:
grafana_data:
external: true请记住,如果您使用的是PRAGMA journal_mode=WAL;,则在日志关闭之前,docker container将不会反映更改。
https://stackoverflow.com/questions/74148603
复制相似问题