在了解到docker这个东西后就一直想找找有没有mirai的镜像,找了一段时间,发现都是很久以前的项目了,索性就照着文档自己创建了mirai的镜像。
开始先创建一个Dockerfile用来构建文件,代码如下
# 使用openjdk18作为基础镜像
FROM openjdk:18-jdk-alpine3.14
#设置环境变量
ENV LANG=zh_CN.UTF-8 \
SHELL=/bin/bash \
PS1="\u@\h:\w \$ " \
MIRAI_DIR=/mirai \
MCL_VERSION=2.1.0 \
MCL_URL=https://github.com/iTXTech/mirai-console-loader/releases/download/v2.1.0/mcl-2.1.0.zip
# 复制启动脚本到镜像
COPY ./init /usr/bin
#设置工作路径
WORKDIR ${MIRAI_DIR}
#设置时区,换源,下载mcl启动器
RUN set -x \
&& sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
&& apk update -f \
&& apk upgrade \
&& apk --no-cache add -f bash \
coreutils \
moreutils \
git \
curl \
wget \
unzip \
tzdata \
&& rm -rf /var/cache/apk/* \
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone \
&& wget -P "/tmp" ${MCL_URL}
#运行init脚本
ENTRYPOINT ["bash", "/usr/bin/init"]
然后在 Dockerfile 同目录下创建init脚本
#!/bin/sh
if [ "`ls -A ${MIRAI_DIR}`" = "" ]; then
echo "-------第一次启动容器,正在初始化---------"
unzip /tmp/mcl-${MCL_VERSION}.zip -d /mirai
cd /mirai
chmod +x mcl
./mcl --update-package org.itxtech:mcl-addon
./mcl --update-package org.itxtech:soyuz
./mcl --update-package net.mamoe:chat-command --channel stable --type plugin
./mcl --update-package net.mamoe:mirai-api-http --channel stable-v2 --type plugin
echo "-------初始化完成,启动miriai---------"
./mcl
else
echo "-------启动miriai---------"
cd ${MIRAI_DIR}&&./mcl
fi
最后后在Dockerfile同目录下构建镜像
docker build -t mirai:latest --rm .
然后用构建好的镜像测试
docker run -itd —-nema mirai \
-v “$(pwd)”/mirai:/mirai \
—-restart alawys mirai:latest

Comments NOTHING