ghost博客系统docker容器化简记

近来研究ghostAPI,当进行至Admin API部分时,需要在ghost的后台的Integration中创建一个自定义的Integration,就可以或者这个ghost服务实例的admin API的key,就可以调用相应的admin API。但是我发现我创建的customized integration中没有admin API key,只有
content API key。原因是我的ghost版本需要更新。

使用ghost-cli的命令ghost update进行升级的时候,提示了content文件夹owner错误。
修改了content文件夹的owner之后,又提示了另外一个错误说是systemd不正常工作了。
重新为ghost setup了systemd,但是依然报那个错误。
至此,已经消耗了我一天多的业余时间,并且不太开心。索性用docker装一个容器化的ghost算了,反正迟早要改造容器化。

于是pull下来了ghost镜像,pull下来了mysql镜像。将mysql数据库备份。
mysql的镜像下来起来特别慢(有可能是因为我daemon.json中的mirros设置错了导致,后来才发现),的容器跑起来很容易,并且将备份的sql恢复进去。
但是这个ghost的镜像跑起来,还要把我之前的theme也结合进去,这个折腾了我好一会儿。现在系统容器化之后,已经和之前单机部署是一样的状态了,回想一下,主要被几个点给坑了:
1. ghost的config.production.json中的bootstrap.socker配置,要删掉
2. url 要填成外网访问的url,否则/admin会跳转错误。
3. server.host要填成’0.0.0.0’,和单机安装配合nginx不同的是,这里需要能够局域网的nginx转发过来请求,所以不能写成单机时的localhost
4. 还遇到了好久关于2368端口占用的问题,后来发现是docker start myghost时是通过node直接启动的,而不是ghost start,所以ghost-cli的命令不适用这里。要想重启最佳方法是重启容器
5. 还遇到了docker的daemon启动不起来的吓人问题,最后通过查看日志发现是docker的daemon.json格式问题

几个查看状态和日志的方法:
- systemctl status docker 查看docker状态
- docker logs myghost 查看某个容器的日志

目前在容器化的过程中仍然存在的问题是:
- nginx尚未容器化,这个不急,以后再说
- mysql的数据文件在容器中,应该用映射目录映射到主机中

经过以上折腾,终于可以继续学习admin API了 [大哭]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值