动手搭建代码片段托管服务,可用于随手记录 Snippet

snibox/snibox 是一款使用 Ruby on Rails + Vuex 编写的代码片段托管服务。对于一线程序员来说,经常会接触到大量的代码片段(Snippet),上传到 Gist 无法完全 Private,而 Snibox 则是个不错的选择。

效果

另外,该项目还有个 在线 Demo,由于托管于免费的 Heroku 服务,所以首次访问可能需要大概 30 秒时间启动。

部署

Snibox 官方提供了一套 Docker 部署方案,包括 dockerfile、编排各项服务依赖的 docker-compose.yml 以及简易的 Setup 脚本;你可以在 snibox/snibox-docker 下载到:

git clone

这里我使用 Git 将该仓库直接克隆,方便与远端同步。

在 README.md 文件内,它提供的启动命令是这样的:

./bin/setup
./bin/start

对于不明不白的脚本,我在执行之前都有先看代码的习惯,以免造成一些未知的影响(例如安装系统全局依赖、修改外部文件等)。

自从使用 Docker 之后,对所有的一键脚本都产生了莫名的恐惧和排斥?。

于是经过观察发现,bin/start 内的脚本只有一行:

docker-compose up

没什么猫腻 —— 依照 docker-compose.yml 的配置启动容器。再来看 bin/setup

# ...
echo "Copy .env.sample to .env:"
# ...
echo -e "\nInject secret key:"
# ...
echo -e "\nPull images:"
# ...
echo -e "\nCreate database:"
# ...
echo -e "\nRun migrations:"
# ...
echo -e "\n${GREEN}Setup completed!${NC}"

我摘选了一部分展示,从以上代码中大概可得知:该脚本主要帮我们执行了以下任务:

  • 复制 .env.sample(类似 Laravel 的 .env.example 文件)到 .env
  • 写入 Secret Key(类似 Laravel 的 php artisan key:generate 命令)。
  • 拉取 Docker 镜像。
  • 创建数据库并执行迁移(类似 Laravel 的 php artisan migrate)。

看起来还是十分有帮助的,虽然我觉得写成辅助脚本不合适,而应该打包在 Docker 镜像内。

最后,再来看看 docker-compose.yml,最需要注意的是:

services:
  frontend:
    image: snibox/nginx-puma:1.13.8
    ports:
      - "8000:80" # 将镜像内 80 端口映射到宿主机 8000 端口
# ...

可通过修改 8000 为其它值来改变 Snibox 的访问端口,注意避免冲突。

最后,我们需要做的就是执行配置脚本并启动即可。

bin/setup
docker-compose up

个人更加倾向于使用原生的 docker-compose up,如需后台运行,则携带 -d 选项即可。

结语

该仓库暂时还存在一些小问题,目前我已经提交 PR:

本作品采用《CC 协议》,转载必须注明作者和本文链接
Former WinForm and PHP engineer. Now prefer Golang and Rust, and mainly working on DevSecOps and Kubernetes.
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

这是什么问题
ERROR: relation "users" does not exist at character 566

file

6年前 评论

@lovecn 首先,提问前请先阅读《提问的艺术》,提供可以预期目标、实际表现、复现的环境和步骤;其次,技术类问题应当到 GitHub 项目页提交 Issue,而非在推荐文章内回复评论。

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
67
粉丝
592
喜欢
1236
收藏
1136
排名:13
访问:32.4 万
私信
所有博文
社区赞助商