当前位置:   article > 正文

docker搭建firefiy iii_firefly iii

firefly iii

Firefly III是一个自托管的金融管理工具,旨在帮助个人和家庭跟踪他们的支出、收入、预算和资产。它提供了一个直观的web界面,通过这个界面,用户可以快速设置账户、记录交易、创建预算,并且还可以查看各种报表来分析个人财务状况。
搭建Firefly III使用Docker是一个非常方便的方式,因为它抽象了很多配置细节,让你可以更专注于使用Firefly III而不是配置它。

通过Docker CLI搭建Firefly III

首先,你需要通过命令行逐一创建所需的网络、卷和容器。

  1. 创建网络:
docker network create firefly_iii_network
  • 1
  1. 创建卷:
docker volume create firefly_iii_upload
docker volume create firefly_iii_db
  • 1
  • 2
  1. 运行数据库容器:
docker run -d --name firefly_iii_db --hostname db --restart always \
    --env-file .db.env -v firefly_iii_db:/var/lib/mysql \
    --network firefly_iii_network mariadb
  • 1
  • 2
  • 3
  1. 运行Firefly III核心容器:
docker run -d --name firefly_iii_core --hostname app --restart always \
    -v firefly_iii_upload:/var/www/html/storage/upload -p 24380:8080 \
    --env-file .env --network firefly_iii_network \
    --depends-on firefly_iii_db fireflyiii/core:latest
  • 1
  • 2
  • 3
  • 4
  1. 设置定时任务容器:
docker run -d --name firefly_iii_cron --restart always \
    --network firefly_iii_network alpine \
    /bin/sh -c "echo \"0 3 * * * wget -qO- http://app:8080/api/v1/cron/REPLACEME\" | crontab - && crond -f -L /dev/stdout"
  • 1
  • 2
  • 3

使用Docker Compose搭建

version: '3.3'

services:
  app:
    image: fireflyiii/core:latest
    hostname: app
    container_name: firefly_iii_core
    restart: always
    volumes:
      - firefly_iii_upload:/var/www/html/storage/upload
    env_file: .env
    networks:
      - firefly_iii
    ports:
      - 24380:8080
    depends_on:
      - db
  db:
    image: mariadb
    hostname: db
    container_name: firefly_iii_db
    restart: always
    env_file: .db.env
    networks:
      - firefly_iii
    volumes:
      - firefly_iii_db:/var/lib/mysql
  cron:
    #
    # To make this work, set STATIC_CRON_TOKEN in your .env file or as an environment variable and replace REPLACEME below
    # The STATIC_CRON_TOKEN must be *exactly* 32 characters long
    #
    image: alpine
    restart: always
    container_name: firefly_iii_cron
    command: sh -c "echo \"0 3 * * * wget -qO- http://app:8080/api/v1/cron/REPLACEME\" | crontab - && crond -f -L /dev/stdout"
    networks:
      - firefly_iii

volumes:
   firefly_iii_upload:
   firefly_iii_db:

networks:
  firefly_iii:
    driver: bridge
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • version: 指定了使用的Docker Compose文件格式版本,'3.3'提供了现代Docker平台需要的所有功能。
  • services: 定义了要运行的服务,本例中包括app(Firefly III核心应用)、db(数据库)和cron(定时任务)。
    • image: 指定容器使用的镜像。
    • hostname: 设置容器内的主机名。
    • container_name: 定义容器的名称,这使得容器更容易识别。
    • restart: 设置容器的重启策略,always表示容器总是重启。
    • volumes: 将数据卷或文件挂载到容器内的指定路径。
    • env_file: 从文件中读取环境变量。
    • networks: 指定容器连接的网络。
    • ports: 将容器内的端口映射到主机的端口,格式为<主机端口>:<容器端口>
    • depends_on: 表明容器启动的依赖关系。
    • command: 定制容器启动后执行的命令。
  • volumes: 定义了使用的卷,用于持久化和共享数据。
  • networks: 定义了网络,driver: bridge表示使用桥接模式,使得容器之间能够单独通信。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/696117
推荐阅读
相关标签
  

闽ICP备14008679号