更新于2024/9/8
MCSM
账号&面板
面板链接:点击这里
维护账号
节点
端口
测试环境自由分配的端口
生产环境暴露的端口
实例创建要求
概括
务必本地测试完毕后再服务器上部署实例
务必将文件目录分配为
/home/data/{dir}
,{dir}
为你想要分配的路径务必使用虚拟环境,如
venv
,docker
文件目录分配
点击新建应用
默认本地测试好后打包上传服务器,为避免面板自动调的参数问题,选择部署控制台可执行程序
选择服务器现有目录
实例名称填你需要的,启动命令按需要来,一般为执行服务器启动脚本,文件目录填
/home/data/{dir}
,{dir}
一般与实例名称相同(没有该目录会自动创建,无需mkdir)
实例创建完毕,点击
前往实例控制台
导入服务端包
点击文件管理
点击上传文件,上传你的服务端压缩包,务必使用
zip
格式压缩
解压文件
选择解压到当前目录,请务必选择合适编码格式:
Windows
平台下压缩的压缩包——GBKLinux
平台下压缩的压缩包——UTF-8
解压完毕后注意查看启动脚本是否权限正确,确保所有者有可执行权限
可以看到所有者无可执行权限,勾选执行并应用到所有文件
容器运行
回到实例终端控制台,点击应用实例设置
点击容器化
启动docker选择镜像
镜像推荐
配置网络模式
请选择1pabel-network
,网络模式运行原理和bridge
相同
配置开放端口
假设服务端配置文件server.properties
中server-port=30000
,则主机端口和容器端口均填写30000
协议:
工作目录挂载[可选]
默认情况下,/home/data/{dir}
挂在在容器内/workspace
处,可按需要调整
事件任务
可配置崩溃自动重启和开机自动启动
JVM参数
乱码解决
-Daikars.new.flags=true -Dfile.encoding=UTF-8 -Duser.language=zh -Duser.country=CN
GC问题
别调一堆flags了,懒人参数
-XX:+UseZGC
MUA接入
架设服务端(进阶) | Minecraft高校联盟资料站 (mualliance.cn)
-javaagent:authlib-injector-1.2.3.jar=https://skin.mualliance.ltd/api/union/yggdrasil
1PANEL
账号&面板
在你没有了解你正在做什么之前,请不要使用该面板
在你没有了解你正在做什么之前,请不要使用该面板
在你没有了解你正在做什么之前,请不要使用该面板
面板链接
维护账号
root账号
在你没有了解你正在做什么之前,请不要切换到root账号
在你没有了解你正在做什么之前,请不要切换到root账号
在你没有了解你正在做什么之前,请不要切换到root账号
pip
镜像加速
-i
或--index-url
:pip
的一个选项,用于指定 Python 包的下载源地址(Python 包索引)。默认情况下,pip
会从 Python 官方包管理仓库 PyPI 下载包。
-i https://pypi.tuna.tsinghua.edu.cn/simple
依赖列表
-r requirements.txt
已安装模块列表
pip list
venv
安装pip
apt install pip
安装venv
apt install python3-venv
创建虚拟环境
cd /home/data/ChatBridge
python3 -m venv test_env
-m
是 Python 命令行选项,用于告诉 Python 解释器运行指定模块的命令。通过使用-m
,你可以运行一个模块并将其视为一个脚本,而不是手动指定文件路径。
这条命令会在当前目录下创建一个名为 test_env
的文件夹,其中包含虚拟环境的可执行文件和所需的Python库。
查看下文件结构
root@AQUA13600KF:~# cd /home/data/ChatBridge
root@AQUA13600KF:/home/data/ChatBridge# ls
ChatBridge.pyz ChatBridge_server.json logs start.sh test_env
root@AQUA13600KF:/home/data/ChatBridge# cd test_env/
root@AQUA13600KF:/home/data/ChatBridge/test_env# ls
bin include lib lib64 pyvenv.cfg
root@AQUA13600KF:/home/data/ChatBridge/test_env# cd bin
root@AQUA13600KF:/home/data/ChatBridge/test_env/bin# ls
Activate.ps1 activate activate.csh activate.fish pip pip3 pip3.11 python python3 python3.11
激活虚拟环境
root@AQUA13600KF:/home/data/ChatBridge# source ./test_env/bin/activate
(test_env) root@AQUA13600KF:/home/data/ChatBridge#
可以看到,命令行的提示符前面会出现括号,里面是虚拟环境名称。
安装包
虚拟环境启用后,就可以使用pip
命令来安装需要的包
(test_env) root@AQUA13600KF:/home/data/ChatBridge# pip3 install mcdreforged -i https://pypi.tuna.tsinghua.edu.cn/simple
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
...
(test_env) root@AQUA13600KF:/home/data/ChatBridge#
在Linux系统上,安装的包放在./test_env/lib/pythonx.x/site-packages
目录下
使用包
安装后,可以在命令行执行python
命令,进入Python交互式环境,然后import 安装的包,如果不报错,就说明安装成功了
(test_env) root@AQUA13600KF:/home/data/ChatBridge# pip3 list
Package Version
------------------ ---------
certifi 2024.8.30
charset-normalizer 3.3.2
colorama 0.4.6
colorlog 6.8.2
idna 3.8
mcdreforged 2.13.1
packaging 24.1
parse 1.20.2
pip 23.0.1
prompt_toolkit 3.0.47
psutil 6.0.0
requests 2.32.3
resolvelib 1.0.1
ruamel.yaml 0.18.6
ruamel.yaml.clib 0.2.8
setuptools 66.1.1
typing_extensions 4.12.2
urllib3 2.2.2
wcwidth 0.2.13
(test_env) root@AQUA13600KF:/home/data/ChatBridge# python
Python 3.11.2 (main, Aug 26 2024, 07:20:54) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import mcdreforged
>>>
退出虚拟环境
deactivate
容器内使用
及时更新Path
#!/bin/bash
source ./test_env/bin/activate # 激活虚拟环境
chmod +x ./test_env/bin/pip
chmod +x ./test_env/bin/python
export PATH="/workspace/test_env/bin:$PATH"
python -m mcdreforged # 在虚拟环境中运行命令
Docker
Docker加速
nano /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.1panelproxy.com",
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"
]
}
命令
Docker常用命令大全(非常详细)零基础入门到精通,收藏这一篇就够了-CSDN博客
run
docker run 命令常用参数详解 - 明月, - 博客园 (cnblogs.com)
DockerFile
【自定义镜像—Dockerfile完全指南】常用的十三种dockerfile指令及构建Tomcat镜像例子_tomcat dockerfile-CSDN博客
docker入门(八)—— dockerfile详细介绍,编写dockerfile-CSDN博客
FROM # 基础镜像,当前新镜像是基于哪个镜像的
MAINTAINER # 镜像维护者的姓名混合邮箱地址
RUN # 容器构建时需要运行的命令
EXPOSE # 当前容器对外保留出的端口
WORKDIR # 指定在创建容器后,终端默认登录的进来工作目录,一个落脚点
ENV # 用来在构建镜像过程中设置环境变量
ADD # 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
COPY # 类似ADD,拷贝文件和目录到镜像中!
VOLUME # 容器数据卷,用于数据保存和持久化工作
CMD # 指定一个容器启动时要运行的命令,dockerFile中可以有多个CMD指令,但只有最后一个生效!
ENTRYPOINT # 指定一个容器启动时要运行的命令!和CMD一样
ONBUILD # 当构建一个被继承的DockerFile时运行命令,父镜像在被子镜像继承后,父镜像的ONBUILD被触发
# 基础镜像 基础debian环境
FROM ustclug/debian:12.2
# 维护者
MAINTAINER aquaoh<aquaoh@outlook.com>
# 配置环境
ENV MIRROR https://pypi.tuna.tsinghua.edu.cn/simple
# 更新包索引,安装 Python 和 OpenJDK 21
RUN apt-get update && apt-get install -y \
ca-certificates \
python3 \
python3-pip \
python3-venv \
wget && \
wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.deb && \
dpkg -i jdk-21_linux-x64_bin.deb || apt-get install -f -y && \
rm jdk-21_linux-x64_bin.deb && \
apt-get clean
# 配置 Python 包镜像源
RUN pip3 config set global.index-url $MIRROR
# 创建一个符号链接使得 'python' 命令指向 'python3'
RUN ln -s /usr/bin/python3 /usr/bin/python
# 配置 Java 环境变量
RUN echo "export JAVA_HOME=/usr/java/jdk-21.0.2" >> /etc/profile && \
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile