在 Mac 上用 Docker 部署思源笔记做本地测试

在正式部署到自己的云服务器之前,我习惯先在本地测试一番,没问题后再搬到云端,在这里分享一下我在本地 Mac 上测试的经验。以下思路放在云服务器上部署也是类似的,只不过多了一步 SSL 的相关配置。我没有使用 docker-compose,这样一步一步启动和配置更直观一点。

第一步 :启动思源笔记容器

docker run --name "siyuan" \
-e LANG=zh_CN.UTF-8 \
-e LC_ALL=zh_CN.UTF-8 \
-v ~/Documents/SiYuan:/root/siyuanworkspace \
-d b3log/siyuan --servePath="Mac在局域网内的地址:9000" --workspace=/root/siyuanworkspace

# 说明:使用9000端口是为了通过下面nginx暴露的9000端口,在局域网内进行访问该服务

第二步 :启动 Nginx 容器,做反向代理。只要能在局域网内能访问到,那么搬到云端后,使用域名 +DNS 解析就没问题了。

# 先启动一个nginx容器
docker run -d -p 9000:80 --name nginx nginx

# 复制配置文件到本机目录
docker cp nginx:/etc/nginx/conf.d ~/workspaces/docker/nginx

# 删掉容器
docker stop nginx && docker rm nginx

# 重新启动一个nginx容器
docker run -d -p 9000:80 --name nginx -v ~/workspaces/docker/nginx/conf.d:/etc/nginx/conf.d nginx

第三步 :修改 Nginx 里的配置文件,进行反向代理。

# 修改配置文件(文件内容见下面)
vi ~/workspaces/docker/nginx/conf.d/default.conf

# 进入docker容器,重新加载nginx
docker exec -it nginx bash
nginx -t
nginx -s reload

配置文件内容如下,注意把 IP 地址换成思源笔记容器的 IP 地址,查看容器的 IP 地址:docker inspect siyuan | grep IPAdd

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    location / {
        proxy_pass http://172.17.0.2:6806;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;
    }

    location /ws {
           proxy_pass http://172.17.0.2:6806;
           proxy_read_timeout 60s;
           proxy_http_version 1.1;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection 'Upgrade';
    }
}

广告 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • jearton10
    支持者 订阅者 作者

    检查一下 Nginx 日志呢?看看有没有报错?然后网页端打开开发者工具,看看有没有 JS 报错信息?

  • 其他回帖
  • Yanareat
    订阅者

    你好,我在服务器上用 docker 镜像,在宝塔网站配置反向代理后,通过域名访问一直在 logo 转圈,该怎么办才好呢?

    1 回复