docker中typecho 搭建

由 zrc 发布

简介

原博客是搭建在wordpress中,wordpress是一款开源的博客系统。这个系统很方便,而且各大vps厂商是直接提供了镜像系统,购买vps后基本上是开箱即用,非常方便。

但是我使用了两年的wordpress后经常出现各种问题

  1. 系统占用很高。我原来的系统是放在阿里云的虚拟主机中,这款商品提供的基础能力很弱,但是也能满足基本的建blog的需求,我一直在使用它,也一直能够满足我的基本需求。但是,我在去年升级了wordpress的最新版后,问题就暴露了,阿里云的经常把我的应用停了,原因很简单,就是系统资源超限,而且阿里云是限制了每月启动次数的,超过此数后就不能在启动,所以我的博客基本上一致处于瘫痪的状态
  2. 系统插件、主题非常丰富。系统的插件,主题很多,可以选择的内容就很多,为了找到一款好看主题以及一些趁手的工具,我装了一些插件和主题,随之而来的就是各种问题,各款主题或者插件会互相影响,经常出现我卸载了一个主题或者插件后,我整个的blog 就乱了。我曾经为了恢复整个系统,重装过几次wordpress

Typecho 也是一个基于php开源的博客系统,在这两天的使用中,我发现这款blog 很轻量。轻量这个来源有两方面。
一个是功能很少,功能少但是绝对够用,该有的都有,不该有的一个都没有。我在使用wordpress 的时候,为了找一款能够支持markdown的插件找了很久才找到,而且也是各种beat版本,很容易崩溃,但在typecho中是直接提供了,根本不需要在去找了。

另外一个是页面简洁,特别是管理系统,菜单分配,页面布局都给人一种简单好用的感觉,能够给你一种想要写点东西的欲望。

另外一个优点是,typecho 的插件和主题系统是和主系统是分离的。插件、主题是单独的目录,安装任何插件和主题都不会影响我的整个博客,如果有问题我只需要删除新增的内容即可。

接下来记录下我安装系统的过程,以及docker 镜像的选择

安装

typecho 依赖数据,可以选择sqllite ,pg,mysql(mariadb)。sqllite是个单文件,如果选择这个,可以直接进行安装typecho 。我选的是mariadb,对这个熟悉一点。选pg 也可以,基本上是和mysql 兼容的。

mysql 的安装

Mysql的安装基本是属于老生常谈了,改加的变量加上去就可以了,把端口和数据目录挂载出来即可。这里我只提供我的安装命令

sudo docker run -p 3306:3306  --name mariadb -e MARIADB_ROOT_PASSWORD=you-pwd -v /home/ubuntu/docker/mysql/data:/var/lib/mysql -d mariadb:10.4

typecho 的安装

typecho 的惊喜又很多个,排名最前面的是荒野无灯制作的,这款镜像最后更新是在2年前,且不说很多featue 功能没有更新,而且在安装完之后还有一个推广,最终还是放弃了这个惊喜

排名第二个的一个官方镜像,官方镜像提供了三种容器,我使用的apache的,这个镜像提供了自动安装的能力,但是自动安装是保留原始数据库还是重新初始化也没有具体明说,也没有可配置参数。为了能够保持升级的能力,我还是选择手动安装,手动安装只需要填写数据库信息即可。很快就可以安装成功。

以下为安装命令:

run --name blog -p 80:80 -e TIMEZONE=Asia/Shanghai -e TYPECHO_SITE_URL=http://zrc.asia --restart always -v /home/ubuntu/docker/typecho/data:/app/usr -d joyqi/typecho:nightly-php7.4-apache

需要注意的地方有两个,一个是一定要把/app/usr 这个目录挂载出来,这里有安装的插件以及主题,如果没有挂载出来,后期升级后内主题和插件会丢失。另外一个就是要把80 端口暴露出来,相关的防火墙策略也要打开。

容器启动后需要填写数据库信息,这里很容易犯错,非docker 安装时,typecho 和mysql 同一台机器,数据库ip 为127.0.01 ,这个没问题。但是通过docker安装时,ip 是不一样的,要使用docker 的通信ip (通过ipconfig 找到dock er0的网卡)。然后设置域名密码等就可以安装成功。

typecho的配置

插件

插件我只装了两个,一个是从wordpress 迁移数据 Wordpress to Typecho,安装好之后配置原wordpress的数据库后就可以进行迁移,迁移的内容包括文章,分类,留言等。

另一个是代码高亮显示插件,CodePrettify ,安装好启用即可,不在赘述

主题

主题我选的是Bubble ,我挺喜欢的


仅有一条评论

  1. 归零
    归零 · 2022-02-13 21:48

    容器内部访问宿主机mysql可以用172.17.0.1:3306

发表评论