开发环境
- 操作系统: macOS Mojave 10.14.3
- vagrant Ubuntu 16.04
- docker version 19.03.8
- docker-compose 1.25.5
- docker-hub: crazymax/flarum
- github: crazy-max/docker-flarum
部署中遇到的问题
docker-compose 版本过低不支持 version
解决: 升级docker-compose 版本...
docker-compose up -d 后 数据库服务不断重启.
vagrant File '/var/lib/mysql/aria_log_control' not found (Errcode: 13 "Permission denied")
遇到这个问题 应该是是 macOS 目录权限导致的 至少要保证虚拟机内部外部用户uid一致
id -u root
就可以查看用户uid了.
在docker-compose.yml 为db增加 用户设定的 uid
db:
image: mariadb:10.4
user: "1000"
container_name: flarum_db
docker-compose down
docker-compose up -d
下一个报错
ERROR] InnoDB: Corrupted page [page id: space=0, page number=0] of datafile './ibdata1' could not be found in the doublewrite buffer.
解决: Stop mariadb, remove ibdata1, restart.
下一个报错
Aborted connection 8 to db: 'unconnected' user: 'unauthenticated' host: '172.27.0.3' (This connection closed normally without authentication)
这个时候服务其实已经起来了, 只是 用户没建出来
解决, 手动创建 flarum 用户
docker exec -it flarum_db bash
mysql -uroot
MariaDB [mysql]> create user 'flarum'@'%' identified by 'flarum';
MariaDB [mysql]> grant all privileges on flarum.* to 'flarum'@'%' identified by 'flarum';
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> create database flarum;
exit
docker-compose down
docker-compose up -d
这个时候 mysql 服务应该就是ok的了
由于flarum的这个image 自带了 nginx , 所以你只要在vagrant映射出来的ip后面加 8000 端口, 就可以访问了
然后访问还有访问的问题. Something went wrong while trying to load the full version of this site.
解决: 需要你进flarum的docker内把config.php 中的 url 改成vagrant 映射出来的ip http://127.0.0.1:8000 ==> http://xx.xx.xx.xx:8000
可能需要 执行 : php flarum cache:clear
结束
踩坑结束, 可以正常显示系统. 剩下的东西慢慢研究...