开始
创建数据库
使用MySQL5.7创建数据库一个名为firefly_iii的数据库(数据库名可以自行定义)
docker-compose
新建/opt/docker/compose/firefly_iii工程目录并进入该目录
新建docker-compose.yml文件,内容如下:
| 12
 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
 47
 48
 
 | 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:
 
 - 127.0.0.1:<映射到本地的端口>: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:
 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
 
 | 
新建.env文件,内容如下:
| 12
 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
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 
 | APP_ENV=local
 APP_DEBUG=false
 
 
 SITE_OWNER=example@example.com
 
 
 APP_KEY=SomeRandomStringOf32CharsExactly
 
 
 
 DEFAULT_LANGUAGE=zh_CH
 DEFAULT_LOCALE=equal
 
 
 TZ=Asia/Shanghai
 
 
 TRUSTED_PROXIES=**
 
 
 LOG_CHANNEL=stack
 APP_LOG_LEVEL=emergency
 AUDIT_LOG_LEVEL=emergency
 
 
 DB_CONNECTION=mysql
 DB_HOST=127.0.0.1
 DB_PORT=3306
 
 DB_DATABASE=<数据库名称>
 
 DB_USERNAME=<数据库用户名>
 
 DB_PASSWORD=<数据库用户密码>
 
 MYSQL_USE_SSL=false
 
 
 COOKIE_PATH="/"
 COOKIE_SECURE=false
 COOKIE_SAMESITE=lax
 
 SEND_ERROR_MESSAGE=true
 SEND_REPORT_JOURNALS=true
 
 ENABLE_EXTERNAL_MAP=false
 ENABLE_EXTERNAL_RATES=false
 
 
 AUTHENTICATION_GUARD=web
 AUTHENTICATION_GUARD_HEADER=REMOTE_USER
 
 DISABLE_FRAME_HEADER=false
 
 
 DISABLE_CSP_HEADER=false
 
 ALLOW_WEBHOOKS=false
 
 DKR_BUILD_LOCALE=false
 
 DKR_CHECK_SQLITE=false
 
 DKR_RUN_MIGRATION=true
 DKR_RUN_UPGRADE=true
 DKR_RUN_VERIFY=true
 DKR_RUN_REPORT=true
 DKR_RUN_PASSPORT_INSTALL=true
 
 
 APP_NAME=FireflyIII
 BROADCAST_DRIVER=log
 QUEUE_DRIVER=sync
 CACHE_PREFIX=firefly
 FIREFLY_III_LAYOUT=v1
 
 | 
新建.db.env文件,内容如下:
| 12
 3
 4
 
 | MYSQL_RANDOM_ROOT_PASSWORD=yesMYSQL_DATABASE=<数据库名称>
 MYSQL_USER=<数据库用户名>
 MYSQL_PASSWORD=<数据库用户密码>
 
 | 
在/opt/docker/compose/firefly_iii工程目录下执行以下代码构建容器:
| 1
 | sudo docker-compose up -d
 | 
执行完成后使用sudo docker ps查看容器状态,如fireflyiii/core:latest的STATUS为(healthy)即部署成功
反向代理
此时不能直接通过IP+端口的方式访问。
到域名厂商配置解析后,使用Nginx进行反向代理后才能够访问。
参考文档
官方Docker安装文档
如何利用 Docker & Nginx 在 VPS 上部署 Firefly III 记账软件