Dockerfile for mirai-api-http v2
-
Dockerfile for mirai-api-http v2
Mirai 与 mirai-api-http 的 Dockerfile
使用了 Eclipse OpenJ9 JVM 以减少内存占用。
运行方法
目录准备
Mirai 将登录信息,还有 Mirai 与 mirai-api-http 的配置文件,保存在
bots
与config
文件夹中。在镜像中,这两个文件夹分别位于
/app/bots
与/app/config
中。建议将这些信息保存到容器外部。
新建文件夹:
mkdir mirai mkdir mirai/bots mkdir mirai/config
使用 Docker 运行
在刚刚建立的
mirai
目录中,运行:docker run \ --name mirai \ -v "$PWD"/bots:/app/bots \ -v "$PWD"/config:/app/config \ -p 8080:8080 \ -it \ zhaozuohong/mah
使用 Docker Compose 运行
将以下内容保存到
mirai/docker-compose.yml
文件中:version: "3" services: mirai: image: zhaozuohong/mah container_name: mirai stdin_open: true tty: true volumes: - ./bots:/app/bots - ./config:/app/config ports: - "8080:8080"
随后使用
docker-compose up -d
运行。设置 mirai-api-http
mirai-api-http 的设置文件在
mirai/config/net.mamoe.mirai-api-http/settings.yml
。注意
adapterSettings
下的设置,是mirai-api-http
在容器中的网络设置。因此,host
应该写0.0.0.0
,端口保持8080
即可。如果想让 mirai-api-http 绑定其它端口在
8080
以外的端口运行,不需要修改 mirai-api-http 的端口设置,只要修改 Docker 命令或者docker-compose.yml
文件即可。例如,在
3000
端口运行:docker run \ --name mirai \ -v "$PWD"/bots:/app/bots \ -v "$PWD"/config:/app/config \ -p 3000:8080 \ -it \ zhaozuohong/mah
或使用 Docker Compose :
version: "3" services: mirai: image: zhaozuohong/mah container_name: mirai stdin_open: true tty: true volumes: - ./bots:/app/bots - ./config:/app/config ports: - "3000:8080"
容器相关的操作
连按
Ctrl-P
Ctrl-Q
,将容器转为后台运行。可通过docker logs mirai
查看输出,或使用docker attach mirai
再次连接容器。 -
你好,请问访问8080端口。拒绝连接呢?我是在宿主机发起请求的
curl -X POST -H "Content-Type: application/json" -d '{"verifyKey": "xxxx"}' http://127.0.0.1:8080/verify
curl: (7) Failed connect to 127.0.0.1:80; 拒绝连接 -
@mybaron docker ps -a 看一下你部署的服务有没有映射端口。docker logs <name>查看一下容器日志
-
@wssy001 我映射了
zhaozuohong/mah "/app/mcl" 2 hours ago Up 3 minutes 0.0.0.0:8080->8080/tcp mirai
-
@wssy001 容器日志也正常
2021-12-26 07:07:30 I/http adapter: >>> [http adapter] is listening at http://localhost:8080
-
我解决了。需要修改一下 http 的配置。
将 host 改为 0.0.0.0 。默认是 localhost