参考:踩坑归来,经验贴!成功完成 Hoppscotch 的 Docker 部署!https://www.codingone.top/archives/191
想用Hoppscotch作接口测试工具,结果在github上学习了大半天,终于研究出来了怎么部署了。
官方仓库里面的docker-compose.yaml 更多是用来build编译镜像用的(里面包含了多个不同版本的镜像)。 其实如果只是你自己部署,只需要2个镜像,一个Hoppscotch-aio(All in One)作为多合一的应用服务器, 一个postgres做数据库服务器。 而且,如果是自己部署,根本不需要从头build,项目组在docker hub上有编译好的All in One 镜像:hoppscotch/hoppscotch:latest 所以自己想要部署的话,只要拉下镜像,就能用了。
但是!!还有一个大坑!!
就是数据库容器hoppscotch-db(来自postgres数据库镜像),需要一次数据迁移(类似数据初始化),但是相关脚本和docker-compose都没有涉及。相关问题在hoppsctoch项目的issue中已经有不少人解答。但是操作起来都不免有些麻烦。 在研究学习的过程中,我找到了一条简单的利用docker-compose的方法。
问题解决:
-
建议先git clone hoppscotch的仓库,需要使用到其中的
.env.example
文件(也可以自己下载这个文件),复制一份命名为.env
,在docker-compose.yaml中指定了.env
作为容器运行的环境变量。 -
编写自己的docker-compose.yaml, 原理就是除了平时运行需要的hoppscotch-aio和hoppscotch-db, 增加1个第一次初始化用的 hoppscotch-aio-init. 可以参考我的docker-compose.yaml修改:
services:
# The service that spins up all 3 services at once in one container
hoppscotch-aio:
container_name: hoppscotch-aio
image: hoppscotch/hoppscotch:latest
restart: unless-stopped
env_file:
- ./.env
depends_on:
hoppscot