@maolog Mastodon 迁移 Docker 指南(不用迁移数据库#草稿
Docker 和 dcoker-compose 安装
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose配置文件使用
# 创建目录
mkdir mastodon && cd mastodon
# 下载 docker-compose 配置文件(小森林版本)
wget https://github.com/mashirozx/mastodon/raw/master/docker-compose.yml
# 这里需要编辑 docker-compose 配置文件和 .env.production 配置文件,说明见后文
# 如果没有使用对象储存,需要把以前的媒体文件复制(cp -r)或者移动(mv)过来:
mkdir public
cp -r /home/live/public/system public/system
# 修改权限
chmod -R 755 public/system
# 关闭原先在 systemctl 下运行的 mastodon-web、mastodon-sidekiq、mastodon-streaming 进程
systemctl stop mastodon-web mastodon-sidekiq mastodon-streaming
systemctl disable mastodon-web mastodon-sidekiq mastodon-streaming
# 启动 docker 进程
docker-compose up -d
编辑 docker-compose 配置文件
因为 PostgreSQL 数据库和 Redis 我们暂时不迁移到 Docker 里面,所以可以把 docker-compose.yml 里最前面的 db:
和 redis:
两个大块注释掉,然后相应地把后续配置中 depends_on:
里的 - db
和 - redis
也注释掉。如果不希望修改 Nginx 配置,可以把 web 和 streaming 两个服务的端口改为以前用的端口,默认是 3000 和 4000 不用变。
编辑 .env.production 配置文件
可以直接把以前的 .env.production 文件复制过来,需要修改的内容是 db 和 redis 的 host 地址(docker的localhost或者127.0.0.1不会映射到宿主机)。
获取 bridge 的 IP:
docker network inspect bridge
输出中找到 “IPv4Address” 这一行,后面是的IP就是容器中宿主localhost的映射。把配置文件中的localhost或者127.0.0.1换成刚刚拿到的这个IP。
接下来,如果你用的是小森林的代码,注意把示例配置文件里面最后 “git repo”、“translation server”和“Markdown image proxy”三段配置复制过来,这是魔改里的功能。