大家好,我是博哥爱运维。
最近刷B站,看到这个【幻兽帕鲁】游戏非常火,游戏倒并没有引起我的太多兴趣,但是看到阿里云帐号发了一篇文章:有手就行!阿里云上3分钟搞定幻兽帕鲁联机服务器搭建,这个倒是引起了我的兴趣,看了下阿里云发的文章,知道了其搭建服务器的一个过程,想着正好可以利用这个机会给大家讲下SHELL脚本部署docker服务的一个过程,正所谓游戏学习两不误。
我把里面的脚本整理出来了
这是一个安装 Docker CE 并拉取 Palworld 服务器镜像的 Shell 脚本。请注意,该脚本假设您的操作系统是 CentOS、Ubuntu、Debian、Fedora 或 Alibaba Cloud Linux,并且系统版本受支持。
脚本的功能包括:
- 检查操作系统发行版以确定正确的安装方法。
- 安装 Docker CE 的依赖项。
- 配置 Docker CE 的软件仓库。
- 安装 Docker CE。
- 启动并启用 Docker 服务。
- 拉取 Palworld 服务器镜像。
- 创建用于存储服务器配置和存档的目录。
- 在 Docker 中运行 Palworld 服务器容器。
请确保在执行此脚本之前具有适当的权限,并在执行脚本时小心检查脚本中的命令。
#!/bin/bash
function check_distro() {
for i in issue os-release issue.net centos-release redhat-release; do
if [[ -f /etc/$i ]]; then
if grep -q "$1" /etc/$i; then
return 0
fi
fi
done
return 1
}
function install_docker_CE() {
if check_distro 'CentOS'; then
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+https://mirrors.aliyun.com+http://mirrors.cloud.aliyuncs.com+' /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
elif check_distro 'Ubuntu'; then
apt-get update
apt-get -y install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu/gpg | apt-key add -
add-apt-repository -y "deb [arch=amd64] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
apt-get -y install docker-ce
elif check_distro 'Debian'; then
apt-get update
apt-get -y install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/debian/gpg | apt-key add -
add-apt-repository -y "deb [arch=amd64] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/debian $(lsb_release -cs) stable"
apt-get update
apt-get -y install docker-ce
elif check_distro 'Fedora'; then
dnf config-manager --add-repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/fedora/docker-ce.repo
sed -i 's+https://mirrors.aliyun.com+http://mirrors.cloud.aliyuncs.com+' /etc/yum.repos.d/docker-ce.repo
dnf -y install docker-ce
elif check_distro 'Alibaba Cloud Linux (Aliyun Linux) 2'; then
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+https://mirrors.aliyun.com+http://mirrors.cloud.aliyuncs.com+' /etc/yum.repos.d/docker-ce.repo
yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus
yum -y install docker-ce
elif check_distro 'Alibaba Cloud Linux 3'; then
dnf config-manager --add-repo=http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+https://mirrors.aliyun.com+http://mirrors.cloud.aliyuncs.com+' /etc/yum.repos.d/docker-ce.repo
dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus
dnf -y install docker-ce
else
echo 'Linux release version not supported.'
exit 1
fi
}
install_docker_CE
systemctl start docker
systemctl enable docker
# 获取 Palworld 服务器 docker 镜像。如果是其他环境获取不到 REGION,可以将后面的 docker 镜像地址替换为公网地址,如:registry.cn-hangzhou.aliyuncs.com/imbolo/palworld-server:latest
REGION=`curl -s 100.100.100.200/latest/meta-data/region-id`
docker pull registry-vpc.${REGION}.aliyuncs.com/imbolo/palworld-server:latest
# 创建 /PalSaved 用于在 ECS 上存储服务器配置和存档
sudo groupadd -g 1000 steam && sudo useradd -u 1000 -g steam -m steam && mkdir /PalSaved && chown -R steam:steam /PalSaved
docker run --restart=always --user 1000:1000 -v /PalSaved:/home/steam/Steam/steamapps/common/PalServer/Pal/Saved/ --name palworld-server --net host -dit registry-vpc.${REGION}.aliyuncs.com/imbolo/palworld-server