入门docker笔记 从零搭一个轻论坛系统 基于Flarum home 编辑时间 2019/10/16 ![](/api/file/getImage?fileId=5da5787516199b046700072c) ## 前言 这次希望用docker折腾一个轻社区的系统,语言随意,内存占用越低越好. 翻了一圈百度,发现最合适的是flarum github: https://github.com/mondediefr/docker-flarum#master docker hub: https://hub.docker.com/r/mondedie/docker-flarum ## 折腾 ### 说明 由于之前已有一个container运行着mysql5.7,不想跟着官方教程重新再开一个mysql,内存过于紧张,管理也费劲,所以是只单运行一个flarum,后来再用nginx反向代理到域名上访问.因此我用的方案会和官网的文档里的教程不同,但最终效果是一样的. 必填信息参考这2张表: **Environment variables** | Variable | Description | Type | Default value | | -------- | ----------- | ---- | ------------- | | **UID** | Flarum user id | *optional* | 991 | **GID** | Flarum group id | *optional* | 991 | **DEBUG** | Flarum debug mode | *optional* | false | **FORUM_URL** | Forum URL | **required** | none | **DB_HOST** | MariaDB instance ip/hostname | *optional* | mariadb | **DB_USER** | MariaDB database username | *optional* | flarum | **DB_NAME** | MariaDB database name | *optional* | flarum | **DB_PASS** | MariaDB database password | **required** | none | **DB_PREF** | Flarum tables prefix | *optional* | none | **DB_PORT** | MariaDB database port | *optional* | 3306 | **UPLOAD_MAX_SIZE** | The maximum size of an uploaded file | *optional* | 50M | **PHP_MEMORY_LIMIT** | PHP memory limit | *optional* | 128M | | **OPCACHE_MEMORY_LIMIT** | OPcache memory size in megabytes | *optional* | 128 | **LOG_TO_STDOUT** | Enable nginx and php error logs to stdout | *optional* | false | **GITHUB_TOKEN_AUTH** | github token to download private extensions | *optional* | false **Required environment variable for first installation** | Variable | Description | Type | Default value | | -------- | ----------- | ---- | ------------- | | **FLARUM_ADMIN_USER** | Name of your user admin | **required** | none | **FLARUM_ADMIN_PASS** | User admin password | **required** | none | **FLARUM_ADMIN_MAIL** | User admin adress mail | **required** | none | **FLARUM_TITLE** | Set a name of your flarum | *optional* | Docker-Flarum <br> <br> ### 安装 用默认安装最新版本的images即可 ```shell docker pull mondedie/docker-flarum:0.1.0-beta.10-stable ``` ### 运行 这里需要注意 1. 开始之前,必须先去新建一个数据库,例如falrum(utf8mb4) 2. `--link` 是关联到另一个name是mysql的container上,方便后期容器和容器之间连接,所以你必须提前有一个mysql的容器 2. 有5个`-e xxx` 分别是5个必填项(参考上门的两张表格),把密码改成你自己的 ```shell docker run -d -p 8888:8888\ --link mysql\ --name flarum\ -e FORUM_URL='http://localhost:8888'\ -e DB_PASS='root@1234'\ -e FLARUM_ADMIN_USER='admin'\ -e FLARUM_ADMIN_PASS='root@1234'\ -e FLARUM_ADMIN_MAIL='admin@zzzmh.cn'\ mondedie/docker-flarum:0.1.0-beta.10-stable ``` 这一步特别容易掉坑,建议在下一步之前,先检查一下是否启动成功,若出现ERROR,先百度解决之,再重新RUN试试 ```shell docker logs flarum # 正常的返回值的最后一句应该是(至少没有ERROR) [INFO] End of flarum installation ``` ### 访问 http://localhost:8888/ ![](/api/file/getImage?fileId=5da5956e16199b046700075f) 这里全部按实际情况填就好了 还有一些小坑 ![](/api/file/getImage?fileId=5da574c816199b0467000717) **1. MySql Host** 这里格式必须是:mysql:port 前面的是你的`mysql`容器的名字和之前run命令中的link保持一致,后面的`port`就是端口,默认3306 例如:mysql:3306 (一些情况下只写mysql也可以) 不能是localhost也不能是127.0.0.1 否则都会报错 **2. MySql Database** 他只能帮你建表,不能建库,所以这里填的库必须存在.例如我填的是falrum 那我就去新建一个数据库falrum utf8mb4 否则如果库不存在就会报错 或者库里已经有其他版本的表也会报错 <br> 安装成功会跳转到首页 ![](/api/file/getImage?fileId=5da5760a16199b0467000723) <br> ## 优化 ### 环境部分 <br> --- 注意:这个镜像是没有bash的,要进入容器的话不能用 `docker exec -it flarum bash` 这个镜像有sh,所以应该是 `docker exec -it flarum sh` 效果和bash差不多一样 --- <br> 进入容器 ```shell docker exec -it flarum sh ``` 然后顺手给flarum 赋个权限 ```shell chmod -R 777 flarum cd flarum/app/ ``` 先安装composer阿里云镜像(否则会慢到奔溃) 网站:https://developer.aliyun.com/composer ```shell # 全局安装 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ ``` ### 插件安装 安装简体中文扩展插件 ```shell # 简体中文支持 composer require csineneo/lang-simplified-chinese ``` 安装文件上传扩展插件 ```shell # 文件上传支持 composer require "flagrow/upload:*" ``` <br> ### 启用插件 再次访问管理后台的插件管理 http://localhost:8888/admin#/extensions 启用一下刚才安装的插件的`checkbox` ![](/api/file/getImage?fileId=5da6bf1416199b046700091a) <br> 进入 ===> `基本管理 [Basics]` http://localhost:8888/admin#/basics 把默认语音改为 `[简体中文]` ![](/api/file/getImage?fileId=5da6be7b16199b0467000919) 要点`[保存]`生效 (再刷新应该就有中文支持了) <br> 进入 ===> `文件上传管理 [File Upload]` ![](/api/file/getImage?fileId=5da6c07616199b0467000924) <br> 最后还有一个邮箱设置 我这里就直接略过了 基本就参照网易邮箱或者qq邮箱的文档即可 --- <br> ## END 完成以上配置,一个基本款的flarum轻论坛docke版本就搞定了,最好再套一层nginx反向代理,例如套在二级域名上 bbs.yourwebsite.com 记得如果修改过访问域名,记得进入容器,找到config.php config.yml 一起修改掉 最后附上本次demo大致效果的截图 ![](/api/file/getImage?fileId=5da6c19516199b0467000926) <br> ![](/api/file/getImage?fileId=5da6c19516199b0467000928) <br> ![](/api/file/getImage?fileId=5da6c19516199b0467000927) 送人玫瑰,手留余香 赞赏 Wechat Pay Alipay 入门docker笔记 Docker 最佳的UI可视化工具 Portainer 入门docker笔记之 docker安装 mysql mongodb redis tomcat nginx