download/panel/podman/install.sh
耗子 2142a20687
Some checks failed
Generate Checksums / checksums (push) Has been cancelled
fix: 防止重复设置镜像加速
2025-05-31 20:26:17 +08:00

89 lines
3.2 KiB (Stored with Git LFS)
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:$PATH
: '
Copyright (C) 2022 - now HaoZi Technology Co., Ltd.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'
source <(curl -f -s --connect-timeout 10 --retry 3 https://dl.cdn.haozi.net/panel/public.sh)
if [ $? -ne 0 ]; then
echo "下载 public.sh 失败,请检查网络或稍后重试。"
echo "Download public.sh failed, please check the network or try again later."
exit 1
fi
channel=${1}
version=${2}
in_china=$(curl --retry 2 -m 10 -L https://www.qualcomm.cn/cdn-cgi/trace 2>/dev/null | grep -qx 'loc=CN' && echo "true" || echo "false")
if [ ${OS} == "rhel" ]; then
dnf makecache -y
dnf install podman podman-compose podman-docker -y
elif [ ${OS} == "debian" ] || [ ${OS} == "ubuntu" ]; then
apt-get update
apt-get install podman podman-compose podman-docker containers-storage -y
else
error "不支持的操作系统"
fi
# Debian\OpenCloudOS\openEuler 下可能没有 /etc/containers/storage.conf 文件
if [ ! -f /etc/containers/storage.conf ]; then
if [ -f /usr/share/containers/storage.conf ]; then
cp /usr/share/containers/storage.conf /etc/containers/storage.conf
else
touch /etc/containers/storage.conf
fi
fi
[ ! -f /etc/containers/nodocker ] && touch /etc/containers/nodocker
if ${in_china} && ! grep -q 'docker.1ms.run' /etc/containers/registries.conf; then
cat >>/etc/containers/registries.conf <<EOF
[[registry]]
location = "docker.io"
[[registry.mirror]]
location = "docker.1ms.run"
EOF
fi
# 需要安装 docker-composepodman-compose 缺很多功能
cd /tmp
wget --retry-connrefused --retry-on-host-error --retry-on-http-error=429,500,502,503,504 -t 10 -T 120 -O docker-compose-linux-${ARCH}.7z ${download_url}/podman/docker-compose-linux-${ARCH}.7z
wget --retry-connrefused --retry-on-host-error --retry-on-http-error=429,500,502,503,504 -t 10 -T 120 -O docker-compose-linux-${ARCH}.7z.sha256 ${download_url}/podman/docker-compose-linux-${ARCH}.7z.sha256
if ! sha256sum --status -c docker-compose-linux-${ARCH}.7z.sha256; then
rm -f docker-compose-linux-${ARCH}.7z
rm -f docker-compose-linux-${ARCH}.7z.sha256
error "docker-compose 校验失败"
fi
7z x docker-compose-linux-${ARCH}.7z
rm -f docker-compose-linux-${ARCH}.7z
rm -f docker-compose-linux-${ARCH}.7z.sha256
mv -f docker-compose-linux-${ARCH} /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
systemctl enable --now podman
systemctl enable --now podman.socket
systemctl enable --now podman-restart
# 创建编排目录
mkdir -p ${setup_path}/server/compose
panel-cli app write podman ${channel} ${version}
echo -e ${HR}
echo "安装完成"
echo -e ${HR}