Skip to content

Commit e26f25f

Browse files
committed
Docker 脚本适配 DEB822 格式软件源
1 parent 28593b1 commit e26f25f

2 files changed

Lines changed: 65 additions & 5 deletions

File tree

DockerInstallation.sh

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,8 @@ File_ProxmoxVersion=/etc/pve/.version
156156
File_AptSourceList=/etc/apt/sources.list
157157
Dir_AptAdditionalSources=/etc/apt/sources.list.d
158158
Dir_YumRepos=/etc/yum.repos.d
159+
File_DebianSources=$Dir_AptAdditionalSources/debian.sources
160+
File_UbuntuSources=$Dir_AptAdditionalSources/ubuntu.sources
159161

160162
## 定义 Docker 相关变量
161163
Dir_Docker=/etc/docker
@@ -165,6 +167,7 @@ File_DockerVersionTmp=docker-version.txt
165167
File_DockerCEVersionTmp=docker-ce-version.txt
166168
File_DockerCECliVersionTmp=docker-ce-cli-version.txt
167169
File_DockerSourceList=$Dir_AptAdditionalSources/docker.list
170+
File_DockerSources=$Dir_AptAdditionalSources/docker.sources
168171
File_DockerRepo=$Dir_YumRepos/docker-ce.repo
169172

170173
## 定义颜色和样式变量
@@ -627,7 +630,6 @@ function collect_system_info() {
627630
SYSTEM_JUDGMENT="${SYSTEM_RASPBERRY_PI_OS}"
628631
SYSTEM_PRETTY_NAME="${SYSTEM_RASPBERRY_PI_OS}"
629632
fi
630-
631633
## 针对特定系统的判定
632634
if [[ "${SYSTEM_JUDGMENT}" == "${SYSTEM_DEBIAN}" ]]; then
633635
## 尚未正式发布的版本
@@ -647,6 +649,14 @@ function collect_system_info() {
647649
USE_DEB822_FORMAT="true"
648650
fi
649651
fi
652+
# Debian DEB822 格式源文件
653+
if [[ "${SYSTEM_JUDGMENT}" == "${SYSTEM_DEBIAN}" ]] && [ -f "${File_DebianSources}" ]; then
654+
USE_DEB822_FORMAT="true"
655+
fi
656+
# Ubuntu DEB822 格式源文件
657+
if [[ "${SYSTEM_JUDGMENT}" == "${SYSTEM_UBUNTU}" ]] && [ -f "${File_UbuntuSources}" ]; then
658+
USE_DEB822_FORMAT="true"
659+
fi
650660
;;
651661
"${SYSTEM_REDHAT}")
652662
SYSTEM_JUDGMENT="$(awk '{printf $1}' $File_RedHatRelease)"
@@ -711,6 +721,7 @@ function collect_system_info() {
711721
"${SYSTEM_KALI}")
712722
SOURCE_BRANCH="debian"
713723
SOURCE_BRANCH_CODENAME="${debian_codename_latest}"
724+
USE_DEB822_FORMAT="true"
714725
;;
715726
"${SYSTEM_LINUX_MINT}")
716727
if [[ "${SYSTEM_NAME}" == *"LMDE"* ]]; then
@@ -1205,8 +1216,17 @@ function configure_docker_ce_mirror() {
12051216
chmod a+r $file_keyring
12061217
## 添加源
12071218
[ -d "${Dir_AptAdditionalSources}" ] || mkdir -p $Dir_AptAdditionalSources
1208-
local apt_source_content="deb [arch=$(dpkg --print-architecture) signed-by=${file_keyring}] ${WEB_PROTOCOL}://${SOURCE}/linux/${SOURCE_BRANCH} ${DEBIAN_CODENAME:-${SOURCE_BRANCH_CODENAME:-${SYSTEM_VERSION_CODENAME}}} stable"
1209-
echo "${apt_source_content}" | tee $File_DockerSourceList >/dev/null 2>&1
1219+
if [[ "${USE_DEB822_FORMAT}" == "true" ]]; then
1220+
echo "Types: deb
1221+
URIs: ${WEB_PROTOCOL}://${SOURCE}/linux/${SOURCE_BRANCH}
1222+
Suites: ${DEBIAN_CODENAME:-${SOURCE_BRANCH_CODENAME:-${SYSTEM_VERSION_CODENAME}}}
1223+
Components: stable
1224+
Architectures: $(dpkg --print-architecture)
1225+
Signed-By: ${file_keyring}" >$File_DockerSources
1226+
else
1227+
local apt_source_content="deb [arch=$(dpkg --print-architecture) signed-by=${file_keyring}] ${WEB_PROTOCOL}://${SOURCE}/linux/${SOURCE_BRANCH} ${DEBIAN_CODENAME:-${SOURCE_BRANCH_CODENAME:-${SYSTEM_VERSION_CODENAME}}} stable"
1228+
echo "${apt_source_content}" | tee $File_DockerSourceList >/dev/null 2>&1
1229+
fi
12101230
commands+=("apt-get update")
12111231
;;
12121232
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_ANOLISOS}" | "${SYSTEM_TENCENTOS}" | "${SYSTEM_KYLIN_SERVER}")

DockerInstallationLite.sh

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ File_ProxmoxVersion=/etc/pve/.version
6868
File_AptSourceList=/etc/apt/sources.list
6969
Dir_AptAdditionalSources=/etc/apt/sources.list.d
7070
Dir_YumRepos=/etc/yum.repos.d
71+
File_DebianSources=$Dir_AptAdditionalSources/debian.sources
72+
File_UbuntuSources=$Dir_AptAdditionalSources/ubuntu.sources
7173

7274
## 定义 Docker 相关变量
7375
Dir_Docker=/etc/docker
@@ -77,6 +79,7 @@ File_DockerVersionTmp=docker-version.txt
7779
File_DockerCEVersionTmp=docker-ce-version.txt
7880
File_DockerCECliVersionTmp=docker-ce-cli-version.txt
7981
File_DockerSourceList=$Dir_AptAdditionalSources/docker.list
82+
File_DockerSources=$Dir_AptAdditionalSources/docker.sources
8083
File_DockerRepo=$Dir_YumRepos/docker-ce.repo
8184

8285
## 定义颜色和样式变量
@@ -404,6 +407,33 @@ function collect_system_info() {
404407
SYSTEM_JUDGMENT="${SYSTEM_RASPBERRY_PI_OS}"
405408
SYSTEM_PRETTY_NAME="${SYSTEM_RASPBERRY_PI_OS}"
406409
fi
410+
## 针对特定系统的判定
411+
if [[ "${SYSTEM_JUDGMENT}" == "${SYSTEM_DEBIAN}" ]]; then
412+
## 尚未正式发布的版本
413+
if [[ -z "${SYSTEM_VERSION_ID}" && "${SYSTEM_VERSION_CODENAME}" == "forky" ]]; then
414+
SYSTEM_VERSION_ID="14"
415+
SYSTEM_VERSION_ID_MAJOR="${SYSTEM_VERSION_ID%%.*}"
416+
SYSTEM_VERSION_ID_MINOR="${SYSTEM_VERSION_ID#*.}"
417+
fi
418+
## 是否使用 DEB822 格式
419+
if [[ "${SYSTEM_VERSION_ID_MAJOR}" && "${SYSTEM_VERSION_ID_MAJOR}" -ge 13 ]]; then
420+
USE_DEB822_FORMAT="true"
421+
fi
422+
fi
423+
if [[ "${SYSTEM_JUDGMENT}" == "${SYSTEM_UBUNTU}" ]]; then
424+
## 是否使用 DEB822 格式
425+
if [[ "${SYSTEM_VERSION_ID_MAJOR}" && "${SYSTEM_VERSION_ID_MAJOR}" -ge 24 ]]; then
426+
USE_DEB822_FORMAT="true"
427+
fi
428+
fi
429+
# Debian DEB822 格式源文件
430+
if [[ "${SYSTEM_JUDGMENT}" == "${SYSTEM_DEBIAN}" ]] && [ -f "${File_DebianSources}" ]; then
431+
USE_DEB822_FORMAT="true"
432+
fi
433+
# Ubuntu DEB822 格式源文件
434+
if [[ "${SYSTEM_JUDGMENT}" == "${SYSTEM_UBUNTU}" ]] && [ -f "${File_UbuntuSources}" ]; then
435+
USE_DEB822_FORMAT="true"
436+
fi
407437
;;
408438
"${SYSTEM_REDHAT}")
409439
SYSTEM_JUDGMENT="$(awk '{printf $1}' $File_RedHatRelease)"
@@ -468,6 +498,7 @@ function collect_system_info() {
468498
"${SYSTEM_KALI}")
469499
SOURCE_BRANCH="debian"
470500
SOURCE_BRANCH_CODENAME="${debian_codename_latest}"
501+
USE_DEB822_FORMAT="true"
471502
;;
472503
"${SYSTEM_LINUX_MINT}")
473504
if [[ "${SYSTEM_NAME}" == *"LMDE"* ]]; then
@@ -699,8 +730,17 @@ function configure_docker_ce_mirror() {
699730
chmod a+r $file_keyring
700731
## 添加源
701732
[ -d "${Dir_AptAdditionalSources}" ] || mkdir -p $Dir_AptAdditionalSources
702-
local apt_source_content="deb [arch=$(dpkg --print-architecture) signed-by=${file_keyring}] ${WEB_PROTOCOL}://${SOURCE}/linux/${SOURCE_BRANCH} ${DEBIAN_CODENAME:-${SOURCE_BRANCH_CODENAME:-${SYSTEM_VERSION_CODENAME}}} stable"
703-
echo "${apt_source_content}" | tee $File_DockerSourceList >/dev/null 2>&1
733+
if [[ "${USE_DEB822_FORMAT}" == "true" ]]; then
734+
echo "Types: deb
735+
URIs: ${WEB_PROTOCOL}://${SOURCE}/linux/${SOURCE_BRANCH}
736+
Suites: ${DEBIAN_CODENAME:-${SOURCE_BRANCH_CODENAME:-${SYSTEM_VERSION_CODENAME}}}
737+
Components: stable
738+
Architectures: $(dpkg --print-architecture)
739+
Signed-By: ${file_keyring}" >$File_DockerSources
740+
else
741+
local apt_source_content="deb [arch=$(dpkg --print-architecture) signed-by=${file_keyring}] ${WEB_PROTOCOL}://${SOURCE}/linux/${SOURCE_BRANCH} ${DEBIAN_CODENAME:-${SOURCE_BRANCH_CODENAME:-${SYSTEM_VERSION_CODENAME}}} stable"
742+
echo "${apt_source_content}" | tee $File_DockerSourceList >/dev/null 2>&1
743+
fi
704744
commands+=("apt-get update")
705745
;;
706746
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_ANOLISOS}" | "${SYSTEM_TENCENTOS}" | "${SYSTEM_KYLIN_SERVER}")

0 commit comments

Comments
 (0)