mirror of
https://github.com/dqzboy/Docker-Proxy.git
synced 2026-01-12 16:25:42 +08:00
feat: Support one-click deployment of NVCR image acceleration proxy service.
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="https://github.com/dqzboy/Docker-Proxy/assets/42825450/c187d66f-152e-4172-8268-e54bd77d48bb" width="230px" height="200px">
|
<img src="https://github.com/dqzboy/Docker-Proxy/assets/42825450/c187d66f-152e-4172-8268-e54bd77d48bb" width="230px" height="200px">
|
||||||
<br>
|
<br>
|
||||||
<i>Self-built Docker image acceleration service, based on the official registry, one-click deployment of Docker, K8s, Quay, Ghcr, Mcr, elastic, and other image acceleration management services.</i>
|
<i>Self-built Docker image acceleration service, based on the official registry, one-click deployment of Docker, K8s, Quay, Ghcr, Mcr, elastic, nvcr and other image acceleration management services.</i>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -183,6 +183,7 @@ docker pull gcr.your_domain_name/google-containers/pause:3.1
|
|||||||
| quay.io | quay.your_domain_name | Quay Container Registry
|
| quay.io | quay.your_domain_name | Quay Container Registry
|
||||||
| mcr.microsoft.com | mcr.your_domain_name | Microsoft Container Registry
|
| mcr.microsoft.com | mcr.your_domain_name | Microsoft Container Registry
|
||||||
| docker.elastic.co | elastic.your_domain_name | Elastic Stack
|
| docker.elastic.co | elastic.your_domain_name | Elastic Stack
|
||||||
|
| nvcr.io | nvcr.your_domain_name | NVIDIA Container Registry
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="https://github.com/dqzboy/Docker-Proxy/assets/42825450/c187d66f-152e-4172-8268-e54bd77d48bb" width="230px" height="200px">
|
<img src="https://github.com/dqzboy/Docker-Proxy/assets/42825450/c187d66f-152e-4172-8268-e54bd77d48bb" width="230px" height="200px">
|
||||||
<br>
|
<br>
|
||||||
<i>自建Docker镜像加速服务,基于官方 registry 一键部署Docker、K8s、Quay、Ghcr、Mcr、elastic等镜像加速\管理服务.</i>
|
<i>自建Docker镜像加速服务,基于官方 registry 一键部署Docker、K8s、Quay、Ghcr、Mcr、elastic、nvcr等镜像加速\管理服务.</i>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -194,6 +194,7 @@ docker pull gcr.your_domain_name/google-containers/pause:3.1
|
|||||||
| quay.io | quay.your_domain_name | Quay Container Registry
|
| quay.io | quay.your_domain_name | Quay Container Registry
|
||||||
| mcr.microsoft.com | mcr.your_domain_name | Microsoft Container Registry
|
| mcr.microsoft.com | mcr.your_domain_name | Microsoft Container Registry
|
||||||
| docker.elastic.co | elastic.your_domain_name | Elastic Stack
|
| docker.elastic.co | elastic.your_domain_name | Elastic Stack
|
||||||
|
| nvcr.io | nvcr.your_domain_name | NVIDIA Container Registry
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
42
config/registry-nvcr.yml
Normal file
42
config/registry-nvcr.yml
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
version: 0.1
|
||||||
|
log:
|
||||||
|
fields:
|
||||||
|
service: registry
|
||||||
|
storage:
|
||||||
|
filesystem:
|
||||||
|
rootdirectory: /var/lib/registry
|
||||||
|
delete:
|
||||||
|
enabled: true
|
||||||
|
cache:
|
||||||
|
blobdescriptor: inmemory
|
||||||
|
blobdescriptorsize: 10000
|
||||||
|
maintenance:
|
||||||
|
uploadpurging:
|
||||||
|
enabled: true
|
||||||
|
age: 168h
|
||||||
|
interval: 24h
|
||||||
|
dryrun: false
|
||||||
|
readonly:
|
||||||
|
enabled: false
|
||||||
|
http:
|
||||||
|
addr: :5000
|
||||||
|
headers:
|
||||||
|
X-Content-Type-Options: [nosniff]
|
||||||
|
Access-Control-Allow-Origin: ['*']
|
||||||
|
Access-Control-Allow-Methods: ['HEAD', 'GET', 'OPTIONS', 'DELETE']
|
||||||
|
Access-Control-Allow-Headers: ['Authorization', 'Accept', 'Cache-Control']
|
||||||
|
Access-Control-Max-Age: [1728000]
|
||||||
|
Access-Control-Allow-Credentials: [true]
|
||||||
|
Access-Control-Expose-Headers: ['Docker-Content-Digest']
|
||||||
|
|
||||||
|
health:
|
||||||
|
storagedriver:
|
||||||
|
enabled: true
|
||||||
|
interval: 10s
|
||||||
|
threshold: 3
|
||||||
|
|
||||||
|
proxy:
|
||||||
|
remoteurl: https://nvcr.io
|
||||||
|
username:
|
||||||
|
password:
|
||||||
|
ttl: 168h
|
||||||
@@ -143,6 +143,24 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- registry-net
|
- registry-net
|
||||||
|
|
||||||
|
## nvcr.io
|
||||||
|
nvcr:
|
||||||
|
container_name: reg-nvcr
|
||||||
|
image: dqzboy/registry:latest
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- OTEL_TRACES_EXPORTER=none
|
||||||
|
#- http=http://host:port
|
||||||
|
#- https=http://host:port
|
||||||
|
volumes:
|
||||||
|
- ./registry/data:/var/lib/registry
|
||||||
|
- ./registry-elastic.yml:/etc/distribution/config.yml
|
||||||
|
#- ./htpasswd:/auth/htpasswd
|
||||||
|
ports:
|
||||||
|
- 59000:5000
|
||||||
|
networks:
|
||||||
|
- registry-net
|
||||||
|
|
||||||
## UI
|
## UI
|
||||||
registry-ui:
|
registry-ui:
|
||||||
container_name: registry-ui
|
container_name: registry-ui
|
||||||
|
|||||||
@@ -100,9 +100,72 @@ DOCKER_COMPOSE_FILE="docker-compose.yaml"
|
|||||||
CMDUI_IMAGE_NAME="dqzboy/hubcmd-ui"
|
CMDUI_IMAGE_NAME="dqzboy/hubcmd-ui"
|
||||||
CMDUI_COMPOSE_FILE="${GITRAW}/hubcmdui/${DOCKER_COMPOSE_FILE}"
|
CMDUI_COMPOSE_FILE="${GITRAW}/hubcmdui/${DOCKER_COMPOSE_FILE}"
|
||||||
|
|
||||||
|
# Registry Domain prefix
|
||||||
|
REGISTRY_SLD="ui、hub、gcr、ghcr、k8sgcr、k8s、quay、mcr、elastic、nvcr"
|
||||||
|
RECORDS=("ui" "hub" "gcr" "ghcr" "k8sgcr" "k8s" "quay" "mcr" "elastic" "nvcr")
|
||||||
|
|
||||||
attempts=0
|
attempts=0
|
||||||
maxAttempts=3
|
maxAttempts=3
|
||||||
|
|
||||||
|
# registry services
|
||||||
|
function REGISTRY_MENU() {
|
||||||
|
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
||||||
|
echo -e "${GREEN}1)${RESET} ${BOLD}docker hub${RESET}"
|
||||||
|
echo -e "${GREEN}2)${RESET} ${BOLD}gcr${RESET}"
|
||||||
|
echo -e "${GREEN}3)${RESET} ${BOLD}ghcr${RESET}"
|
||||||
|
echo -e "${GREEN}4)${RESET} ${BOLD}quay${RESET}"
|
||||||
|
echo -e "${GREEN}5)${RESET} ${BOLD}k8s-gcr${RESET}"
|
||||||
|
echo -e "${GREEN}6)${RESET} ${BOLD}k8s${RESET}"
|
||||||
|
echo -e "${GREEN}7)${RESET} ${BOLD}mcr${RESET}"
|
||||||
|
echo -e "${GREEN}8)${RESET} ${BOLD}elastic${RESET}"
|
||||||
|
echo -e "${GREEN}9)${RESET} ${BOLD}nvcr${RESET}"
|
||||||
|
echo -e "${GREEN}10)${RESET} ${BOLD}all${RESET}"
|
||||||
|
echo -e "${GREEN}0)${RESET} ${BOLD}exit${RESET}"
|
||||||
|
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
||||||
|
}
|
||||||
|
function REGISTRY_SER_MENU() {
|
||||||
|
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
||||||
|
echo -e "${GREEN}1)${RESET} ${BOLD}docker hub${RESET}"
|
||||||
|
echo -e "${GREEN}2)${RESET} ${BOLD}gcr${RESET}"
|
||||||
|
echo -e "${GREEN}3)${RESET} ${BOLD}ghcr${RESET}"
|
||||||
|
echo -e "${GREEN}4)${RESET} ${BOLD}quay${RESET}"
|
||||||
|
echo -e "${GREEN}5)${RESET} ${BOLD}k8s-gcr${RESET}"
|
||||||
|
echo -e "${GREEN}6)${RESET} ${BOLD}k8s${RESET}"
|
||||||
|
echo -e "${GREEN}7)${RESET} ${BOLD}mcr${RESET}"
|
||||||
|
echo -e "${GREEN}8)${RESET} ${BOLD}elastic${RESET}"
|
||||||
|
echo -e "${GREEN}9)${RESET} ${BOLD}nvcr${RESET}"
|
||||||
|
echo -e "${GREEN}0)${RESET} ${BOLD}exit${RESET}"
|
||||||
|
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 定义Docker容器服务名称
|
||||||
|
CONTAINER_SERVICES() {
|
||||||
|
services=(
|
||||||
|
"dockerhub"
|
||||||
|
"gcr"
|
||||||
|
"ghcr"
|
||||||
|
"quay"
|
||||||
|
"k8sgcr"
|
||||||
|
"k8s"
|
||||||
|
"mcr"
|
||||||
|
"elastic"
|
||||||
|
"nvcr"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
REGISTRY_FILES() {
|
||||||
|
files=(
|
||||||
|
"dockerhub registry-hub.yml"
|
||||||
|
"gcr registry-gcr.yml"
|
||||||
|
"ghcr registry-ghcr.yml"
|
||||||
|
"quay registry-quay.yml"
|
||||||
|
"k8sgcr registry-k8sgcr.yml"
|
||||||
|
"k8s registry-k8s.yml"
|
||||||
|
"mcr registry-mcr.yml"
|
||||||
|
"elastic registry-elastic.yml"
|
||||||
|
"nvcr registry-nvcr.yml"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
function CHECK_OS() {
|
function CHECK_OS() {
|
||||||
SEPARATOR "检查环境"
|
SEPARATOR "检查环境"
|
||||||
@@ -482,7 +545,7 @@ fi
|
|||||||
function CONFIG_CADDY() {
|
function CONFIG_CADDY() {
|
||||||
SEPARATOR "配置Caddy"
|
SEPARATOR "配置Caddy"
|
||||||
while true; do
|
while true; do
|
||||||
INFO "${LIGHT_GREEN}>>> 域名解析主机记录(即域名前缀):${RESET} ${LIGHT_CYAN}ui、hub、gcr、ghcr、k8sgcr、k8s、quay、mcr、elastic${RESET}"
|
INFO "${LIGHT_GREEN}>>> 域名解析主机记录(即域名前缀):${RESET} ${LIGHT_CYAN}${REGISTRY_SLD}${RESET}"
|
||||||
WARN "${LIGHT_GREEN}>>> 只需选择你部署的服务进行解析即可${RESET},${LIGHT_YELLOW}无需将上面提示中所有的主机记录进行解析${RESET}"
|
WARN "${LIGHT_GREEN}>>> 只需选择你部署的服务进行解析即可${RESET},${LIGHT_YELLOW}无需将上面提示中所有的主机记录进行解析${RESET}"
|
||||||
read -e -p "$(WARN "是否配置Caddy,实现自动HTTPS? 执行前需在DNS服务商对部署服务解析主机记录 ${PROMPT_YES_NO}")" caddy_conf
|
read -e -p "$(WARN "是否配置Caddy,实现自动HTTPS? 执行前需在DNS服务商对部署服务解析主机记录 ${PROMPT_YES_NO}")" caddy_conf
|
||||||
case "$caddy_conf" in
|
case "$caddy_conf" in
|
||||||
@@ -491,7 +554,7 @@ while true; do
|
|||||||
read -e -p "$(INFO "请输入要配置的${LIGHT_MAGENTA}主机记录${RESET},用逗号分隔${LIGHT_BLUE}[例: ui,hub]${RESET}: ")" selected_records
|
read -e -p "$(INFO "请输入要配置的${LIGHT_MAGENTA}主机记录${RESET},用逗号分隔${LIGHT_BLUE}[例: ui,hub]${RESET}: ")" selected_records
|
||||||
|
|
||||||
# 验证输入的主机记录
|
# 验证输入的主机记录
|
||||||
local valid_records=("ui" "hub" "gcr" "ghcr" "k8sgcr" "k8s" "quay" "mcr" "elastic")
|
local valid_records=("${RECORDS[@]}")
|
||||||
IFS=',' read -r -a records_array <<< "$selected_records"
|
IFS=',' read -r -a records_array <<< "$selected_records"
|
||||||
local invalid_records=()
|
local invalid_records=()
|
||||||
for record in "${records_array[@]}"; do
|
for record in "${records_array[@]}"; do
|
||||||
@@ -502,7 +565,7 @@ while true; do
|
|||||||
|
|
||||||
if [[ ${#invalid_records[@]} -gt 0 ]]; then
|
if [[ ${#invalid_records[@]} -gt 0 ]]; then
|
||||||
ERROR "无效的主机记录: ${LIGHT_RED}${invalid_records[@]}${RESET}"
|
ERROR "无效的主机记录: ${LIGHT_RED}${invalid_records[@]}${RESET}"
|
||||||
INFO "请输入有效的主机记录: ${LIGHT_GREEN}ui、hub、gcr、ghcr、k8sgcr、k8s、quay、mcr、elastic${RESET}"
|
INFO "请输入有效的主机记录: ${LIGHT_GREEN}${REGISTRY_SLD}${RESET}"
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -581,6 +644,14 @@ while true; do
|
|||||||
header_up X-Forwarded-For {remote_addr}
|
header_up X-Forwarded-For {remote_addr}
|
||||||
header_up X-Nginx-Proxy true
|
header_up X-Nginx-Proxy true
|
||||||
}
|
}
|
||||||
|
}"
|
||||||
|
record_templates[nvcr]="nvcr.$caddy_domain {
|
||||||
|
reverse_proxy localhost:59000 {
|
||||||
|
header_up Host {host}
|
||||||
|
header_up X-Real-IP {remote_addr}
|
||||||
|
header_up X-Forwarded-For {remote_addr}
|
||||||
|
header_up X-Nginx-Proxy true
|
||||||
|
}
|
||||||
}"
|
}"
|
||||||
> /etc/caddy/Caddyfile
|
> /etc/caddy/Caddyfile
|
||||||
for record in "${records_array[@]}"; do
|
for record in "${records_array[@]}"; do
|
||||||
@@ -715,7 +786,7 @@ function CONFIG_NGINX() {
|
|||||||
SEPARATOR "配置Nginx"
|
SEPARATOR "配置Nginx"
|
||||||
while true; do
|
while true; do
|
||||||
WARN "自行安装的 Nginx ${LIGHT_RED}请勿执行此操作${RESET},${LIGHT_BLUE}以防覆盖原有配置${RESET}"
|
WARN "自行安装的 Nginx ${LIGHT_RED}请勿执行此操作${RESET},${LIGHT_BLUE}以防覆盖原有配置${RESET}"
|
||||||
INFO "${LIGHT_GREEN}>>> 域名解析主机记录(即域名前缀):${RESET} ${LIGHT_CYAN}ui、hub、gcr、ghcr、k8sgcr、k8s、quay、mcr、elastic${RESET}"
|
INFO "${LIGHT_GREEN}>>> 域名解析主机记录(即域名前缀):${RESET} ${LIGHT_CYAN}${REGISTRY_SLD}${RESET}"
|
||||||
WARN "${LIGHT_GREEN}>>> 只需选择你部署的服务进行解析即可${RESET},${LIGHT_YELLOW}无需将上面提示中所有的主机记录进行解析${RESET}"
|
WARN "${LIGHT_GREEN}>>> 只需选择你部署的服务进行解析即可${RESET},${LIGHT_YELLOW}无需将上面提示中所有的主机记录进行解析${RESET}"
|
||||||
read -e -p "$(WARN "是否配置 Nginx?配置完成后需在DNS服务商解析主机记录 ${PROMPT_YES_NO}")" nginx_conf
|
read -e -p "$(WARN "是否配置 Nginx?配置完成后需在DNS服务商解析主机记录 ${PROMPT_YES_NO}")" nginx_conf
|
||||||
case "$nginx_conf" in
|
case "$nginx_conf" in
|
||||||
@@ -724,7 +795,7 @@ while true; do
|
|||||||
read -e -p "$(INFO "请输入要配置的${LIGHT_MAGENTA}主机记录${RESET},用逗号分隔${LIGHT_BLUE}[例: ui,hub]${RESET}: ")" selected_records
|
read -e -p "$(INFO "请输入要配置的${LIGHT_MAGENTA}主机记录${RESET},用逗号分隔${LIGHT_BLUE}[例: ui,hub]${RESET}: ")" selected_records
|
||||||
|
|
||||||
# 验证输入的主机记录
|
# 验证输入的主机记录
|
||||||
local valid_records=("ui" "hub" "gcr" "ghcr" "k8sgcr" "k8s" "quay" "mcr" "elastic")
|
local valid_records=("${RECORDS[@]}")
|
||||||
IFS=',' read -r -a records_array <<< "$selected_records"
|
IFS=',' read -r -a records_array <<< "$selected_records"
|
||||||
local invalid_records=()
|
local invalid_records=()
|
||||||
for record in "${records_array[@]}"; do
|
for record in "${records_array[@]}"; do
|
||||||
@@ -735,7 +806,7 @@ while true; do
|
|||||||
|
|
||||||
if [[ ${#invalid_records[@]} -gt 0 ]]; then
|
if [[ ${#invalid_records[@]} -gt 0 ]]; then
|
||||||
ERROR "无效的主机记录: ${LIGHT_RED}${invalid_records[@]}${RESET}"
|
ERROR "无效的主机记录: ${LIGHT_RED}${invalid_records[@]}${RESET}"
|
||||||
INFO "请输入有效的主机记录: ${LIGHT_GREEN}ui、hub、gcr、ghcr、k8sgcr、k8s、quay、mcr、elastic${RESET}"
|
INFO "请输入有效的主机记录: ${LIGHT_GREEN}${REGISTRY_SLD}${RESET}"
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -983,6 +1054,33 @@ while true; do
|
|||||||
proxy_buffering off;
|
proxy_buffering off;
|
||||||
proxy_redirect off;
|
proxy_redirect off;
|
||||||
}
|
}
|
||||||
|
}"
|
||||||
|
record_templates[nvcr]="server {
|
||||||
|
listen 80;
|
||||||
|
#listen 443 ssl;
|
||||||
|
server_name nvcr.$nginx_domain;
|
||||||
|
#ssl_certificate /path/to/your_domain_name.crt;
|
||||||
|
#ssl_certificate_key /path/to/your_domain_name.key;
|
||||||
|
#ssl_session_timeout 1d;
|
||||||
|
#ssl_session_cache shared:SSL:50m;
|
||||||
|
#ssl_session_tickets off;
|
||||||
|
#ssl_protocols TLSv1.2 TLSv1.3;
|
||||||
|
#ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
|
||||||
|
#ssl_prefer_server_ciphers on;
|
||||||
|
#ssl_buffer_size 8k;
|
||||||
|
proxy_connect_timeout 600;
|
||||||
|
proxy_send_timeout 600;
|
||||||
|
proxy_read_timeout 600;
|
||||||
|
send_timeout 600;
|
||||||
|
location / {
|
||||||
|
proxy_pass http://localhost:59000;
|
||||||
|
proxy_set_header Host \$host;
|
||||||
|
proxy_set_header X-Real-IP \$remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Nginx-Proxy true;
|
||||||
|
proxy_buffering off;
|
||||||
|
proxy_redirect off;
|
||||||
|
}
|
||||||
}"
|
}"
|
||||||
> /etc/nginx/conf.d/docker-proxy.conf
|
> /etc/nginx/conf.d/docker-proxy.conf
|
||||||
for record in "${records_array[@]}"; do
|
for record in "${records_array[@]}"; do
|
||||||
@@ -1324,7 +1422,6 @@ function update_docker_registry_url() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function CONFIG_FILES() {
|
function CONFIG_FILES() {
|
||||||
while true; do
|
while true; do
|
||||||
read -e -p "$(INFO "安装环境确认 [${LIGHT_GREEN}国外输1${RESET} ${LIGHT_YELLOW}国内输2${RESET}] > ")" install_docker_reg
|
read -e -p "$(INFO "安装环境确认 [${LIGHT_GREEN}国外输1${RESET} ${LIGHT_YELLOW}国内输2${RESET}] > ")" install_docker_reg
|
||||||
@@ -1339,6 +1436,7 @@ while true; do
|
|||||||
"k8s reg-k8s ${GITRAW}/config/registry-k8s.yml"
|
"k8s reg-k8s ${GITRAW}/config/registry-k8s.yml"
|
||||||
"mcr reg-mcr ${GITRAW}/config/registry-mcr.yml"
|
"mcr reg-mcr ${GITRAW}/config/registry-mcr.yml"
|
||||||
"elastic reg-elastic ${GITRAW}/config/registry-elastic.yml"
|
"elastic reg-elastic ${GITRAW}/config/registry-elastic.yml"
|
||||||
|
"nvcr reg-nvcr ${GITRAW}/config/registry-nvcr.yml"
|
||||||
)
|
)
|
||||||
break;;
|
break;;
|
||||||
2 )
|
2 )
|
||||||
@@ -1351,6 +1449,7 @@ while true; do
|
|||||||
"k8s reg-k8s ${CNGITRAW}/config/registry-k8s.yml"
|
"k8s reg-k8s ${CNGITRAW}/config/registry-k8s.yml"
|
||||||
"mcr reg-mcr ${CNGITRAW}/config/registry-mcr.yml"
|
"mcr reg-mcr ${CNGITRAW}/config/registry-mcr.yml"
|
||||||
"elastic reg-elastic ${CNGITRAW}/config/registry-elastic.yml"
|
"elastic reg-elastic ${CNGITRAW}/config/registry-elastic.yml"
|
||||||
|
"nvcr reg-nvcr ${CNGITRAW}/config/registry-nvcr.yml"
|
||||||
)
|
)
|
||||||
break;;
|
break;;
|
||||||
* )
|
* )
|
||||||
@@ -1364,27 +1463,27 @@ function DOWN_CONFIG() {
|
|||||||
selected_files=()
|
selected_files=()
|
||||||
selected_containers=()
|
selected_containers=()
|
||||||
|
|
||||||
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
REGISTRY_MENU
|
||||||
echo -e "${GREEN}1)${RESET} ${BOLD}docker hub${RESET}"
|
|
||||||
echo -e "${GREEN}2)${RESET} ${BOLD}gcr${RESET}"
|
|
||||||
echo -e "${GREEN}3)${RESET} ${BOLD}ghcr${RESET}"
|
|
||||||
echo -e "${GREEN}4)${RESET} ${BOLD}quay${RESET}"
|
|
||||||
echo -e "${GREEN}5)${RESET} ${BOLD}k8s-gcr${RESET}"
|
|
||||||
echo -e "${GREEN}6)${RESET} ${BOLD}k8s${RESET}"
|
|
||||||
echo -e "${GREEN}7)${RESET} ${BOLD}mcr${RESET}"
|
|
||||||
echo -e "${GREEN}8)${RESET} ${BOLD}elastic${RESET}"
|
|
||||||
echo -e "${GREEN}9)${RESET} ${BOLD}all${RESET}"
|
|
||||||
echo -e "${GREEN}0)${RESET} ${BOLD}exit${RESET}"
|
|
||||||
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
|
||||||
|
|
||||||
read -e -p "$(INFO "输入序号下载对应配置文件,${LIGHT_YELLOW}空格分隔${RESET}多个选项. ${LIGHT_CYAN}all下载所有${RESET} > ")" choices_reg
|
read -e -p "$(INFO "输入序号下载对应配置文件,${LIGHT_YELLOW}空格分隔${RESET}多个选项. ${LIGHT_CYAN}all下载所有${RESET} > ")" choices_reg
|
||||||
while [[ ! "$choices_reg" =~ ^([0-9]+[[:space:]]*)+$ ]]; do
|
|
||||||
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-9 ${RESET}序号"
|
while true; do
|
||||||
|
if [[ "$choices_reg" =~ ^[0-9]+([[:space:]][0-9]+)*$ ]]; then
|
||||||
|
valid=true
|
||||||
|
for choice in $choices_reg; do
|
||||||
|
if ((choice < 0 || choice > 10)); then
|
||||||
|
valid=false
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if $valid; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-10 ${RESET}序号"
|
||||||
read -e -p "$(INFO "输入序号下载对应配置文件,${LIGHT_YELLOW}空格分隔${RESET}多个选项. ${LIGHT_CYAN}all下载所有${RESET} > ")" choices_reg
|
read -e -p "$(INFO "输入序号下载对应配置文件,${LIGHT_YELLOW}空格分隔${RESET}多个选项. ${LIGHT_CYAN}all下载所有${RESET} > ")" choices_reg
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [[ "$choices_reg" == "10" ]]; then
|
||||||
if [[ "$choices_reg" == "9" ]]; then
|
|
||||||
for file in "${files[@]}"; do
|
for file in "${files[@]}"; do
|
||||||
file_name=$(echo "$file" | cut -d' ' -f1)
|
file_name=$(echo "$file" | cut -d' ' -f1)
|
||||||
container_name=$(echo "$file" | cut -d' ' -f2)
|
container_name=$(echo "$file" | cut -d' ' -f2)
|
||||||
@@ -1400,7 +1499,7 @@ function DOWN_CONFIG() {
|
|||||||
return
|
return
|
||||||
else
|
else
|
||||||
for choice in ${choices_reg}; do
|
for choice in ${choices_reg}; do
|
||||||
if [[ $choice =~ ^[0-9]+$ ]] && ((choice > 0 && choice <= ${#files[@]})); then
|
if ((choice > 0 && choice < 10)); then
|
||||||
file_name=$(echo "${files[$((choice - 1))]}" | cut -d' ' -f1)
|
file_name=$(echo "${files[$((choice - 1))]}" | cut -d' ' -f1)
|
||||||
container_name=$(echo "${files[$((choice - 1))]}" | cut -d' ' -f2)
|
container_name=$(echo "${files[$((choice - 1))]}" | cut -d' ' -f2)
|
||||||
file_url=$(echo "${files[$((choice - 1))]}" | cut -d' ' -f3-)
|
file_url=$(echo "${files[$((choice - 1))]}" | cut -d' ' -f3-)
|
||||||
@@ -1408,8 +1507,6 @@ function DOWN_CONFIG() {
|
|||||||
selected_containers+=("$container_name")
|
selected_containers+=("$container_name")
|
||||||
selected_files+=("$file_url")
|
selected_files+=("$file_url")
|
||||||
wget -NP ${PROXY_DIR}/ $file_url &>/dev/null
|
wget -NP ${PROXY_DIR}/ $file_url &>/dev/null
|
||||||
else
|
|
||||||
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-9 ${RESET}序号"
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -2061,19 +2158,6 @@ esac
|
|||||||
|
|
||||||
function SVC_MGMT() {
|
function SVC_MGMT() {
|
||||||
CHECK_COMPOSE_CMD
|
CHECK_COMPOSE_CMD
|
||||||
# 定义Docker容器服务名称
|
|
||||||
CONTAINER_SERVICES() {
|
|
||||||
services=(
|
|
||||||
"dockerhub"
|
|
||||||
"gcr"
|
|
||||||
"ghcr"
|
|
||||||
"quay"
|
|
||||||
"k8sgcr"
|
|
||||||
"k8s"
|
|
||||||
"mcr"
|
|
||||||
"elastic"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
RESTART_SERVICE() {
|
RESTART_SERVICE() {
|
||||||
CONTAINER_SERVICES
|
CONTAINER_SERVICES
|
||||||
@@ -2081,22 +2165,28 @@ RESTART_SERVICE() {
|
|||||||
selected_services=()
|
selected_services=()
|
||||||
|
|
||||||
WARN "重启服务请在${LIGHT_GREEN}${DOCKER_COMPOSE_FILE}${RESET}文件存储目录下执行脚本.默认安装路径: ${LIGHT_BLUE}${PROXY_DIR}${RESET}"
|
WARN "重启服务请在${LIGHT_GREEN}${DOCKER_COMPOSE_FILE}${RESET}文件存储目录下执行脚本.默认安装路径: ${LIGHT_BLUE}${PROXY_DIR}${RESET}"
|
||||||
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
|
||||||
echo -e "${GREEN}1)${RESET} ${BOLD}docker hub${RESET}"
|
REGISTRY_MENU
|
||||||
echo -e "${GREEN}2)${RESET} ${BOLD}gcr${RESET}"
|
read -e -p "$(INFO "输入序号选择对应服务,${LIGHT_YELLOW}空格分隔${RESET}多个选项. ${LIGHT_CYAN}all表示所有${RESET} > ")" restart_service
|
||||||
echo -e "${GREEN}3)${RESET} ${BOLD}ghcr${RESET}"
|
|
||||||
echo -e "${GREEN}4)${RESET} ${BOLD}quay${RESET}"
|
while true; do
|
||||||
echo -e "${GREEN}5)${RESET} ${BOLD}k8s-gcr${RESET}"
|
if [[ "$restart_service" =~ ^[0-9]+([[:space:]][0-9]+)*$ ]]; then
|
||||||
echo -e "${GREEN}6)${RESET} ${BOLD}k8s${RESET}"
|
valid=true
|
||||||
echo -e "${GREEN}7)${RESET} ${BOLD}mcr${RESET}"
|
for choice in $restart_service; do
|
||||||
echo -e "${GREEN}8)${RESET} ${BOLD}elastic${RESET}"
|
if ((choice < 0 || choice > 10)); then
|
||||||
echo -e "${GREEN}9)${RESET} ${BOLD}all${RESET}"
|
valid=false
|
||||||
echo -e "${GREEN}0)${RESET} ${BOLD}exit${RESET}"
|
break
|
||||||
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
fi
|
||||||
|
done
|
||||||
|
if $valid; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-10 ${RESET}序号"
|
||||||
|
read -e -p "$(INFO "输入序号选择对应服务,${LIGHT_YELLOW}空格分隔${RESET}多个选项. ${LIGHT_CYAN}all表示所有${RESET} > ")" restart_service
|
||||||
|
done
|
||||||
|
|
||||||
read -e -p "$(INFO "输入序号选择对应服务,${LIGHT_YELLOW}空格分隔${RESET}多个选项. ${LIGHT_CYAN}all选择所有${RESET} > ")" restart_service
|
if [[ "$restart_service" == "10" ]]; then
|
||||||
|
|
||||||
if [[ "$restart_service" == "9" ]]; then
|
|
||||||
for service_name in "${services[@]}"; do
|
for service_name in "${services[@]}"; do
|
||||||
if $DOCKER_COMPOSE_CMD ps --services 2>/dev/null | grep -q "^${service_name}$"; then
|
if $DOCKER_COMPOSE_CMD ps --services 2>/dev/null | grep -q "^${service_name}$"; then
|
||||||
selected_services+=("$service_name")
|
selected_services+=("$service_name")
|
||||||
@@ -2104,13 +2194,17 @@ RESTART_SERVICE() {
|
|||||||
WARN "服务 ${service_name}未运行,跳过重启。"
|
WARN "服务 ${service_name}未运行,跳过重启。"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
INFO "重启的服务: ${selected_services[*]}"
|
if [ ${#selected_services[@]} -eq 0 ]; then
|
||||||
|
WARN "选择的服务未运行,无需进行重启"
|
||||||
|
else
|
||||||
|
INFO "更新的服务: ${selected_services[*]}"
|
||||||
|
fi
|
||||||
elif [[ "$restart_service" == "0" ]]; then
|
elif [[ "$restart_service" == "0" ]]; then
|
||||||
WARN "退出重启服务!"
|
WARN "退出重启服务!"
|
||||||
exit 1
|
return
|
||||||
else
|
else
|
||||||
for choice in ${restart_service}; do
|
for choice in ${restart_service}; do
|
||||||
if [[ $choice =~ ^[0-9]+$ ]] && ((choice >0 && choice <= ${#services[@]})); then
|
if ((choice > 0 && choice < 10)); then
|
||||||
service_name="${services[$((choice -1))]}"
|
service_name="${services[$((choice -1))]}"
|
||||||
if $DOCKER_COMPOSE_CMD ps --services 2>/dev/null | grep -q "^${service_name}$"; then
|
if $DOCKER_COMPOSE_CMD ps --services 2>/dev/null | grep -q "^${service_name}$"; then
|
||||||
selected_services+=("$service_name")
|
selected_services+=("$service_name")
|
||||||
@@ -2123,7 +2217,11 @@ RESTART_SERVICE() {
|
|||||||
RESTART_SERVICE # 选择无效重新调用当前函数进行选择
|
RESTART_SERVICE # 选择无效重新调用当前函数进行选择
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
INFO "重启的服务: ${selected_services[*]}"
|
if [ ${#selected_services[@]} -eq 0 ]; then
|
||||||
|
WARN "选择的服务未运行,无需进行重启"
|
||||||
|
else
|
||||||
|
INFO "更新的服务: ${selected_services[*]}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2131,22 +2229,28 @@ UPDATE_SERVICE() {
|
|||||||
CONTAINER_SERVICES
|
CONTAINER_SERVICES
|
||||||
selected_services=()
|
selected_services=()
|
||||||
WARN "更新服务请在${LIGHT_GREEN}${DOCKER_COMPOSE_FILE}${RESET}文件存储目录下执行脚本.默认安装路径: ${LIGHT_BLUE}${PROXY_DIR}${RESET}"
|
WARN "更新服务请在${LIGHT_GREEN}${DOCKER_COMPOSE_FILE}${RESET}文件存储目录下执行脚本.默认安装路径: ${LIGHT_BLUE}${PROXY_DIR}${RESET}"
|
||||||
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
|
||||||
echo -e "${GREEN}1)${RESET} ${BOLD}docker hub${RESET}"
|
|
||||||
echo -e "${GREEN}2)${RESET} ${BOLD}gcr${RESET}"
|
|
||||||
echo -e "${GREEN}3)${RESET} ${BOLD}ghcr${RESET}"
|
|
||||||
echo -e "${GREEN}4)${RESET} ${BOLD}quay${RESET}"
|
|
||||||
echo -e "${GREEN}5)${RESET} ${BOLD}k8s-gcr${RESET}"
|
|
||||||
echo -e "${GREEN}6)${RESET} ${BOLD}k8s${RESET}"
|
|
||||||
echo -e "${GREEN}7)${RESET} ${BOLD}mcr${RESET}"
|
|
||||||
echo -e "${GREEN}8)${RESET} ${BOLD}elastic${RESET}"
|
|
||||||
echo -e "${GREEN}9)${RESET} ${BOLD}all${RESET}"
|
|
||||||
echo -e "${GREEN}0)${RESET} ${BOLD}exit${RESET}"
|
|
||||||
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
|
||||||
|
|
||||||
read -e -p "$(INFO "输入序号选择对应服务,${LIGHT_YELLOW}空格分隔${RESET}多个选项. ${LIGHT_CYAN}all选择所有${RESET} > ")" choices_service
|
REGISTRY_MENU
|
||||||
|
read -e -p "$(INFO "输入序号选择对应服务,${LIGHT_YELLOW}空格分隔${RESET}多个选项. ${LIGHT_CYAN}all表示所有${RESET} > ")" update_service
|
||||||
|
|
||||||
if [[ "$choices_service" == "9" ]]; then
|
while true; do
|
||||||
|
if [[ "$update_service" =~ ^[0-9]+([[:space:]][0-9]+)*$ ]]; then
|
||||||
|
valid=true
|
||||||
|
for choice in $update_service; do
|
||||||
|
if ((choice < 0 || choice > 10)); then
|
||||||
|
valid=false
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if $valid; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-10 ${RESET}序号"
|
||||||
|
read -e -p "$(INFO "输入序号选择对应服务,${LIGHT_YELLOW}空格分隔${RESET}多个选项. ${LIGHT_CYAN}all表示所有${RESET} > ")" update_service
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ "$update_service" == "10" ]]; then
|
||||||
for service_name in "${services[@]}"; do
|
for service_name in "${services[@]}"; do
|
||||||
if $DOCKER_COMPOSE_CMD ps --services 2>/dev/null | grep -q "^${service_name}$"; then
|
if $DOCKER_COMPOSE_CMD ps --services 2>/dev/null | grep -q "^${service_name}$"; then
|
||||||
selected_services+=("$service_name")
|
selected_services+=("$service_name")
|
||||||
@@ -2154,13 +2258,17 @@ UPDATE_SERVICE() {
|
|||||||
WARN "服务 ${service_name}未运行,跳过更新。"
|
WARN "服务 ${service_name}未运行,跳过更新。"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
INFO "更新的服务: ${selected_services[*]}"
|
if [ ${#selected_services[@]} -eq 0 ]; then
|
||||||
elif [[ "$choices_service" == "0" ]]; then
|
WARN "选择的服务未运行,无法进行更新"
|
||||||
|
else
|
||||||
|
INFO "更新的服务: ${selected_services[*]}"
|
||||||
|
fi
|
||||||
|
elif [[ "$update_service" == "0" ]]; then
|
||||||
WARN "退出更新服务!"
|
WARN "退出更新服务!"
|
||||||
exit 1
|
return
|
||||||
else
|
else
|
||||||
for choice in ${choices_service}; do
|
for choice in ${update_service}; do
|
||||||
if [[ $choice =~ ^[0-9]+$ ]] && ((choice >0 && choice <= ${#services[@]})); then
|
if ((choice > 0 && choice < 10)); then
|
||||||
service_name="${services[$((choice -1))]}"
|
service_name="${services[$((choice -1))]}"
|
||||||
if $DOCKER_COMPOSE_CMD ps --services 2>/dev/null | grep -q "^${service_name}$"; then
|
if $DOCKER_COMPOSE_CMD ps --services 2>/dev/null | grep -q "^${service_name}$"; then
|
||||||
selected_services+=("$service_name")
|
selected_services+=("$service_name")
|
||||||
@@ -2173,30 +2281,25 @@ UPDATE_SERVICE() {
|
|||||||
UPDATE_SERVICE # 选择无效重新调用当前函数进行选择
|
UPDATE_SERVICE # 选择无效重新调用当前函数进行选择
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
INFO "更新的服务: ${selected_services[*]}"
|
|
||||||
|
if [ ${#selected_services[@]} -eq 0 ]; then
|
||||||
|
WARN "选择的服务未运行,无法进行更新"
|
||||||
|
else
|
||||||
|
INFO "更新的服务: ${selected_services[*]}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
CONTAIENR_LOGS() {
|
CONTAIENR_LOGS() {
|
||||||
CONTAINER_SERVICES
|
CONTAINER_SERVICES
|
||||||
selected_services=()
|
selected_services=()
|
||||||
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
REGISTRY_SER_MENU
|
||||||
echo -e "${GREEN}1)${RESET} ${BOLD}docker hub${RESET}"
|
|
||||||
echo -e "${GREEN}2)${RESET} ${BOLD}gcr${RESET}"
|
|
||||||
echo -e "${GREEN}3)${RESET} ${BOLD}ghcr${RESET}"
|
|
||||||
echo -e "${GREEN}4)${RESET} ${BOLD}quay${RESET}"
|
|
||||||
echo -e "${GREEN}5)${RESET} ${BOLD}k8s-gcr${RESET}"
|
|
||||||
echo -e "${GREEN}6)${RESET} ${BOLD}k8s${RESET}"
|
|
||||||
echo -e "${GREEN}7)${RESET} ${BOLD}mcr${RESET}"
|
|
||||||
echo -e "${GREEN}8)${RESET} ${BOLD}elastic${RESET}"
|
|
||||||
echo -e "${GREEN}0)${RESET} ${BOLD}exit${RESET}"
|
|
||||||
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
|
||||||
|
|
||||||
read -e -p "$(INFO "输入序号选择对应服务,${LIGHT_YELLOW}空格分隔${RESET}多个选项. ${LIGHT_CYAN}all选择所有${RESET} > ")" restart_service
|
read -e -p "$(INFO "输入序号选择对应服务,${LIGHT_YELLOW}空格分隔${RESET}多个选项. ${LIGHT_CYAN}all选择所有${RESET} > ")" restart_service
|
||||||
|
|
||||||
if [[ "$restart_service" == "0" ]]; then
|
if [[ "$restart_service" == "0" ]]; then
|
||||||
WARN "退出查看容器服务日志操作!"
|
WARN "退出查看容器服务日志操作!"
|
||||||
exit 1
|
return
|
||||||
else
|
else
|
||||||
for choice in ${restart_service}; do
|
for choice in ${restart_service}; do
|
||||||
if [[ $choice =~ ^[0-9]+$ ]] && ((choice >0 && choice <= ${#services[@]})); then
|
if [[ $choice =~ ^[0-9]+$ ]] && ((choice >0 && choice <= ${#services[@]})); then
|
||||||
@@ -2207,11 +2310,15 @@ CONTAIENR_LOGS() {
|
|||||||
WARN "服务 ${service_name} 未运行,无法查看容器日志。"
|
WARN "服务 ${service_name} 未运行,无法查看容器日志。"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
ERROR "无效的选择: $choice. 请重新${LIGHT_GREEN}选择0-8${RESET}的选项"
|
ERROR "无效的选择: $choice. 请重新${LIGHT_GREEN}选择0-9${RESET}的选项"
|
||||||
CONTAIENR_LOGS # 选择无效重新调用当前函数进行选择
|
CONTAIENR_LOGS # 选择无效重新调用当前函数进行选择
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
INFO "查看日志的服务: ${selected_services[*]}"
|
if [ ${#selected_services[@]} -eq 0 ]; then
|
||||||
|
WARN "选择的服务未运行,无法查看日志"
|
||||||
|
else
|
||||||
|
INFO "查看日志的服务: ${selected_services[*]}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2220,30 +2327,10 @@ MODIFY_SERVICE_TTL_CONFIG() {
|
|||||||
selected_files=()
|
selected_files=()
|
||||||
existing_files=()
|
existing_files=()
|
||||||
non_existing_files=()
|
non_existing_files=()
|
||||||
|
REGISTRY_FILES
|
||||||
files=(
|
|
||||||
"dockerhub registry-hub.yml"
|
|
||||||
"gcr registry-gcr.yml"
|
|
||||||
"ghcr registry-ghcr.yml"
|
|
||||||
"quay registry-quay.yml"
|
|
||||||
"k8sgcr registry-k8sgcr.yml"
|
|
||||||
"k8s registry-k8s.yml"
|
|
||||||
"mcr registry-mcr.yml"
|
|
||||||
"elastic registry-elastic.yml"
|
|
||||||
)
|
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
REGISTRY_SER_MENU
|
||||||
echo -e "${GREEN}1)${RESET} ${BOLD}docker hub${RESET}"
|
|
||||||
echo -e "${GREEN}2)${RESET} ${BOLD}gcr${RESET}"
|
|
||||||
echo -e "${GREEN}3)${RESET} ${BOLD}ghcr${RESET}"
|
|
||||||
echo -e "${GREEN}4)${RESET} ${BOLD}quay${RESET}"
|
|
||||||
echo -e "${GREEN}5)${RESET} ${BOLD}k8s-gcr${RESET}"
|
|
||||||
echo -e "${GREEN}6)${RESET} ${BOLD}k8s${RESET}"
|
|
||||||
echo -e "${GREEN}7)${RESET} ${BOLD}mcr${RESET}"
|
|
||||||
echo -e "${GREEN}8)${RESET} ${BOLD}elastic${RESET}"
|
|
||||||
echo -e "${GREEN}0)${RESET} ${BOLD}exit${RESET}"
|
|
||||||
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
|
||||||
|
|
||||||
read -e -p "$(INFO "输入序号修改服务对应配置文件,${LIGHT_YELLOW}空格分隔${RESET}多个选项 > ")" ttl_service
|
read -e -p "$(INFO "输入序号修改服务对应配置文件,${LIGHT_YELLOW}空格分隔${RESET}多个选项 > ")" ttl_service
|
||||||
if [[ "$ttl_service" == "0" ]]; then
|
if [[ "$ttl_service" == "0" ]]; then
|
||||||
@@ -2252,7 +2339,7 @@ MODIFY_SERVICE_TTL_CONFIG() {
|
|||||||
elif [[ "$ttl_service" =~ ^([1-8]+[[:space:]]*)+$ ]]; then
|
elif [[ "$ttl_service" =~ ^([1-8]+[[:space:]]*)+$ ]]; then
|
||||||
break
|
break
|
||||||
else
|
else
|
||||||
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-8 ${RESET}序号"
|
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-9 ${RESET}序号"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -2306,93 +2393,14 @@ MODIFY_SERVICE_TTL_CONFIG() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
### 启动新容器
|
### 启动新容器
|
||||||
START_NEW_SERVER_CONFIG_FILES() {
|
|
||||||
while true; do
|
|
||||||
read -e -p "$(INFO "安装环境确认 [${LIGHT_GREEN}国外输1${RESET} ${LIGHT_YELLOW}国内输2${RESET}] > ")" install_docker_reg
|
|
||||||
case "$install_docker_reg" in
|
|
||||||
1 )
|
|
||||||
files=(
|
|
||||||
"dockerhub reg-docker-hub ${GITRAW}/config/registry-hub.yml"
|
|
||||||
"gcr reg-gcr ${GITRAW}/config/registry-gcr.yml"
|
|
||||||
"ghcr reg-ghcr ${GITRAW}/config/registry-ghcr.yml"
|
|
||||||
"quay reg-quay ${GITRAW}/config/registry-quay.yml"
|
|
||||||
"k8sgcr reg-k8s-gcr ${GITRAW}/config/registry-k8sgcr.yml"
|
|
||||||
"k8s reg-k8s ${GITRAW}/config/registry-k8s.yml"
|
|
||||||
"mcr reg-mcr ${GITRAW}/config/registry-mcr.yml"
|
|
||||||
"elastic reg-elastic ${GITRAW}/config/registry-elastic.yml"
|
|
||||||
)
|
|
||||||
break;;
|
|
||||||
2 )
|
|
||||||
files=(
|
|
||||||
"dockerhub reg-docker-hub ${CNGITRAW}/config/registry-hub.yml"
|
|
||||||
"gcr reg-gcr ${CNGITRAW}/config/registry-gcr.yml"
|
|
||||||
"ghcr reg-ghcr ${CNGITRAW}/config/registry-ghcr.yml"
|
|
||||||
"quay reg-quay ${CNGITRAW}/config/registry-quay.yml"
|
|
||||||
"k8sgcr reg-k8s-gcr ${CNGITRAW}/config/registry-k8sgcr.yml"
|
|
||||||
"k8s reg-k8s ${CNGITRAW}/config/registry-k8s.yml"
|
|
||||||
"mcr reg-mcr ${CNGITRAW}/config/registry-mcr.yml"
|
|
||||||
"elastic reg-elastic ${CNGITRAW}/config/registry-elastic.yml"
|
|
||||||
)
|
|
||||||
break;;
|
|
||||||
* )
|
|
||||||
INFO "请输入 ${LIGHT_GREEN}1${RESET} 表示国外 或者 ${LIGHT_YELLOW}2${RESET} 表示大陆";;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
START_NEW_SERVER_CONFIG_FILES() {
|
|
||||||
while true; do
|
|
||||||
read -e -p "$(INFO "安装环境确认 [${LIGHT_GREEN}国外输1${RESET} ${LIGHT_YELLOW}国内输2${RESET}] > ")" install_docker_reg
|
|
||||||
case "$install_docker_reg" in
|
|
||||||
1 )
|
|
||||||
files=(
|
|
||||||
"dockerhub reg-docker-hub ${GITRAW}/config/registry-hub.yml"
|
|
||||||
"gcr reg-gcr ${GITRAW}/config/registry-gcr.yml"
|
|
||||||
"ghcr reg-ghcr ${GITRAW}/config/registry-ghcr.yml"
|
|
||||||
"quay reg-quay ${GITRAW}/config/registry-quay.yml"
|
|
||||||
"k8sgcr reg-k8s-gcr ${GITRAW}/config/registry-k8sgcr.yml"
|
|
||||||
"k8s reg-k8s ${GITRAW}/config/registry-k8s.yml"
|
|
||||||
"mcr reg-mcr ${GITRAW}/config/registry-mcr.yml"
|
|
||||||
"elastic reg-elastic ${GITRAW}/config/registry-elastic.yml"
|
|
||||||
)
|
|
||||||
break;;
|
|
||||||
2 )
|
|
||||||
files=(
|
|
||||||
"dockerhub reg-docker-hub ${CNGITRAW}/config/registry-hub.yml"
|
|
||||||
"gcr reg-gcr ${CNGITRAW}/config/registry-gcr.yml"
|
|
||||||
"ghcr reg-ghcr ${CNGITRAW}/config/registry-ghcr.yml"
|
|
||||||
"quay reg-quay ${CNGITRAW}/config/registry-quay.yml"
|
|
||||||
"k8sgcr reg-k8s-gcr ${CNGITRAW}/config/registry-k8sgcr.yml"
|
|
||||||
"k8s reg-k8s ${CNGITRAW}/config/registry-k8s.yml"
|
|
||||||
"mcr reg-mcr ${CNGITRAW}/config/registry-mcr.yml"
|
|
||||||
"elastic reg-elastic ${CNGITRAW}/config/registry-elastic.yml"
|
|
||||||
)
|
|
||||||
break;;
|
|
||||||
* )
|
|
||||||
INFO "请输入 ${LIGHT_GREEN}1${RESET} 表示国外 或者 ${LIGHT_YELLOW}2${RESET} 表示大陆";;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
START_NEW_SERVER_DOWN_CONFIG() {
|
START_NEW_SERVER_DOWN_CONFIG() {
|
||||||
selected_names=()
|
selected_names=()
|
||||||
selected_files=()
|
selected_files=()
|
||||||
selected_containers=()
|
selected_containers=()
|
||||||
|
|
||||||
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
REGISTRY_SER_MENU
|
||||||
echo -e "${GREEN}1)${RESET} ${BOLD}docker hub${RESET}"
|
|
||||||
echo -e "${GREEN}2)${RESET} ${BOLD}gcr${RESET}"
|
|
||||||
echo -e "${GREEN}3)${RESET} ${BOLD}ghcr${RESET}"
|
|
||||||
echo -e "${GREEN}4)${RESET} ${BOLD}quay${RESET}"
|
|
||||||
echo -e "${GREEN}5)${RESET} ${BOLD}k8s-gcr${RESET}"
|
|
||||||
echo -e "${GREEN}6)${RESET} ${BOLD}k8s${RESET}"
|
|
||||||
echo -e "${GREEN}7)${RESET} ${BOLD}mcr${RESET}"
|
|
||||||
echo -e "${GREEN}8)${RESET} ${BOLD}elastic${RESET}"
|
|
||||||
echo -e "${GREEN}0)${RESET} ${BOLD}exit${RESET}"
|
|
||||||
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
|
||||||
|
|
||||||
read -e -p "$(INFO "输入序号下载对应配置文件,${LIGHT_YELLOW}空格分隔${RESET}多个选项 > ")" choices_newser
|
read -e -p "$(INFO "输入序号下载对应配置文件,${LIGHT_YELLOW}空格分隔${RESET}多个选项 > ")" choices_newser
|
||||||
while [[ ! "$choices_newser" =~ ^([0-8]+[[:space:]]*)+$ ]]; do
|
while [[ ! "$choices_newser" =~ ^([0-9]+[[:space:]]*)+$ ]]; do
|
||||||
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-9 ${RESET}序号"
|
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-9 ${RESET}序号"
|
||||||
read -e -p "$(INFO "输入序号下载对应配置文件,${LIGHT_YELLOW}空格分隔${RESET}多个选项 > ")" choices_newser
|
read -e -p "$(INFO "输入序号下载对应配置文件,${LIGHT_YELLOW}空格分隔${RESET}多个选项 > ")" choices_newser
|
||||||
done
|
done
|
||||||
@@ -2412,7 +2420,7 @@ START_NEW_SERVER_DOWN_CONFIG() {
|
|||||||
selected_files+=("$file_url")
|
selected_files+=("$file_url")
|
||||||
wget -NP ${PROXY_DIR}/ $file_url &>/dev/null
|
wget -NP ${PROXY_DIR}/ $file_url &>/dev/null
|
||||||
else
|
else
|
||||||
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-8 ${RESET}序号"
|
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-9 ${RESET}序号"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
@@ -2439,7 +2447,7 @@ START_NEW_SERVER_DOWN_CONFIG() {
|
|||||||
START_NEW_DOCKER_SERVICE() {
|
START_NEW_DOCKER_SERVICE() {
|
||||||
if [ -d "${PROXY_DIR}" ]; then
|
if [ -d "${PROXY_DIR}" ]; then
|
||||||
if [ -f "${PROXY_DIR}/${DOCKER_COMPOSE_FILE}" ]; then
|
if [ -f "${PROXY_DIR}/${DOCKER_COMPOSE_FILE}" ]; then
|
||||||
START_NEW_SERVER_CONFIG_FILES
|
CONFIG_FILES
|
||||||
START_NEW_SERVER_DOWN_CONFIG
|
START_NEW_SERVER_DOWN_CONFIG
|
||||||
PROXY_HTTP
|
PROXY_HTTP
|
||||||
INFO "正在启动新的容器服务,请稍等..."
|
INFO "正在启动新的容器服务,请稍等..."
|
||||||
@@ -2622,35 +2630,13 @@ esac
|
|||||||
function UNI_DOCKER_SERVICE() {
|
function UNI_DOCKER_SERVICE() {
|
||||||
CHECK_COMPOSE_CMD
|
CHECK_COMPOSE_CMD
|
||||||
RM_SERVICE() {
|
RM_SERVICE() {
|
||||||
|
|
||||||
selected_containers=()
|
selected_containers=()
|
||||||
|
REGISTRY_FILES
|
||||||
files=(
|
REGISTRY_SER_MENU
|
||||||
"dockerhub registry-hub.yml"
|
|
||||||
"gcr registry-gcr.yml"
|
|
||||||
"ghcr registry-ghcr.yml"
|
|
||||||
"quay registry-quay.yml"
|
|
||||||
"k8sgcr registry-k8sgcr.yml"
|
|
||||||
"k8s registry-k8s.yml"
|
|
||||||
"mcr registry-mcr.yml"
|
|
||||||
"elastic registry-elastic.yml"
|
|
||||||
)
|
|
||||||
|
|
||||||
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
|
||||||
echo -e "${GREEN}1)${RESET} ${BOLD}docker hub${RESET}"
|
|
||||||
echo -e "${GREEN}2)${RESET} ${BOLD}gcr${RESET}"
|
|
||||||
echo -e "${GREEN}3)${RESET} ${BOLD}ghcr${RESET}"
|
|
||||||
echo -e "${GREEN}4)${RESET} ${BOLD}quay${RESET}"
|
|
||||||
echo -e "${GREEN}5)${RESET} ${BOLD}k8s-gcr${RESET}"
|
|
||||||
echo -e "${GREEN}6)${RESET} ${BOLD}k8s${RESET}"
|
|
||||||
echo -e "${GREEN}7)${RESET} ${BOLD}mcr${RESET}"
|
|
||||||
echo -e "${GREEN}8)${RESET} ${BOLD}elastic${RESET}"
|
|
||||||
echo -e "${GREEN}0)${RESET} ${BOLD}exit${RESET}"
|
|
||||||
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
|
||||||
|
|
||||||
read -e -p "$(INFO "输入序号删除服务和对应配置文件,${LIGHT_YELLOW}空格分隔${RESET}多个选项 > ")" rm_service
|
read -e -p "$(INFO "输入序号删除服务和对应配置文件,${LIGHT_YELLOW}空格分隔${RESET}多个选项 > ")" rm_service
|
||||||
while [[ ! "$rm_service" =~ ^([0-8]+[[:space:]]*)+$ ]]; do
|
while [[ ! "$rm_service" =~ ^([0-9]+[[:space:]]*)+$ ]]; do
|
||||||
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-8 ${RESET}序号"
|
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-9 ${RESET}序号"
|
||||||
read -e -p "$(INFO "输入序号删除服务和对应配置文件,${LIGHT_YELLOW}空格分隔${RESET}多个选项 > ")" rm_service
|
read -e -p "$(INFO "输入序号删除服务和对应配置文件,${LIGHT_YELLOW}空格分隔${RESET}多个选项 > ")" rm_service
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -2660,7 +2646,7 @@ if [[ "$rm_service" == "0" ]]; then
|
|||||||
else
|
else
|
||||||
selected_services=()
|
selected_services=()
|
||||||
for choice in ${rm_service}; do
|
for choice in ${rm_service}; do
|
||||||
if [[ $choice =~ ^[0-8]+$ ]] && ((choice > 0 && choice <= ${#files[@]})); then
|
if [[ $choice =~ ^[0-9]+$ ]] && ((choice > 0 && choice <= ${#files[@]})); then
|
||||||
file_name=$(echo "${files[$((choice - 1))]}" | cut -d' ' -f2)
|
file_name=$(echo "${files[$((choice - 1))]}" | cut -d' ' -f2)
|
||||||
service_name=$(echo "${files[$((choice - 1))]}" | cut -d' ' -f1)
|
service_name=$(echo "${files[$((choice - 1))]}" | cut -d' ' -f1)
|
||||||
|
|
||||||
@@ -2677,7 +2663,7 @@ else
|
|||||||
WARN "配置文件 ${LIGHT_CYAN}${file_name}${RESET} 不存在,${LIGHT_YELLOW}无需删除${RESET}"
|
WARN "配置文件 ${LIGHT_CYAN}${file_name}${RESET} 不存在,${LIGHT_YELLOW}无需删除${RESET}"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-8 ${RESET}序号"
|
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-9 ${RESET}序号"
|
||||||
UNI_DOCKER_SERVICE
|
UNI_DOCKER_SERVICE
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
@@ -2827,32 +2813,11 @@ AUTH_MENU() {
|
|||||||
CHECK_REG_AUTH
|
CHECK_REG_AUTH
|
||||||
selected_files=()
|
selected_files=()
|
||||||
selected_services=()
|
selected_services=()
|
||||||
files=(
|
REGISTRY_FILES
|
||||||
"dockerhub registry-hub.yml"
|
REGISTRY_SER_MENU
|
||||||
"gcr registry-gcr.yml"
|
|
||||||
"ghcr registry-ghcr.yml"
|
|
||||||
"quay registry-quay.yml"
|
|
||||||
"k8sgcr registry-k8sgcr.yml"
|
|
||||||
"k8s registry-k8s.yml"
|
|
||||||
"mcr registry-mcr.yml"
|
|
||||||
"elastic registry-elastic.yml"
|
|
||||||
)
|
|
||||||
|
|
||||||
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
|
||||||
echo -e "${GREEN}1)${RESET} ${BOLD}docker hub${RESET}"
|
|
||||||
echo -e "${GREEN}2)${RESET} ${BOLD}gcr${RESET}"
|
|
||||||
echo -e "${GREEN}3)${RESET} ${BOLD}ghcr${RESET}"
|
|
||||||
echo -e "${GREEN}4)${RESET} ${BOLD}quay${RESET}"
|
|
||||||
echo -e "${GREEN}5)${RESET} ${BOLD}k8s-gcr${RESET}"
|
|
||||||
echo -e "${GREEN}6)${RESET} ${BOLD}k8s${RESET}"
|
|
||||||
echo -e "${GREEN}7)${RESET} ${BOLD}mcr${RESET}"
|
|
||||||
echo -e "${GREEN}8)${RESET} ${BOLD}elastic${RESET}"
|
|
||||||
echo -e "${GREEN}0)${RESET} ${BOLD}exit${RESET}"
|
|
||||||
echo -e "${YELLOW}-------------------------------------------------${RESET}"
|
|
||||||
|
|
||||||
read -e -p "$(INFO "输入序号选择添加认证的服务,${LIGHT_YELLOW}空格分隔${RESET}多个选项 > ")" auth_service
|
read -e -p "$(INFO "输入序号选择添加认证的服务,${LIGHT_YELLOW}空格分隔${RESET}多个选项 > ")" auth_service
|
||||||
while [[ ! "$auth_service" =~ ^([0-8]+[[:space:]]*)+$ ]]; do
|
while [[ ! "$auth_service" =~ ^([0-9]+[[:space:]]*)+$ ]]; do
|
||||||
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-8 ${RESET}序号"
|
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-9 ${RESET}序号"
|
||||||
read -e -p "$(INFO "输入序号选择添加认证的服务,${LIGHT_YELLOW}空格分隔${RESET}多个选项 > ")" auth_service
|
read -e -p "$(INFO "输入序号选择添加认证的服务,${LIGHT_YELLOW}空格分隔${RESET}多个选项 > ")" auth_service
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@@ -2948,7 +2913,7 @@ if [[ "$auth_service" == "0" ]]; then
|
|||||||
return
|
return
|
||||||
else
|
else
|
||||||
for choice in ${auth_service}; do
|
for choice in ${auth_service}; do
|
||||||
if [[ $choice =~ ^[0-8]+$ ]] && ((choice > 0 && choice <= ${#files[@]})); then
|
if [[ $choice =~ ^[0-9]+$ ]] && ((choice > 0 && choice <= ${#files[@]})); then
|
||||||
file_name=$(echo "${files[$((choice - 1))]}" | cut -d' ' -f2)
|
file_name=$(echo "${files[$((choice - 1))]}" | cut -d' ' -f2)
|
||||||
service_name=$(echo "${files[$((choice - 1))]}" | cut -d' ' -f1)
|
service_name=$(echo "${files[$((choice - 1))]}" | cut -d' ' -f1)
|
||||||
selected_files+=("$file_name")
|
selected_files+=("$file_name")
|
||||||
@@ -2960,7 +2925,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-8 ${RESET}序号"
|
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-9 ${RESET}序号"
|
||||||
AUTH_MENU
|
AUTH_MENU
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
@@ -3014,7 +2979,7 @@ if [[ "$auth_service" == "0" ]]; then
|
|||||||
return
|
return
|
||||||
else
|
else
|
||||||
for choice in ${auth_service}; do
|
for choice in ${auth_service}; do
|
||||||
if [[ $choice =~ ^[0-8]+$ ]] && ((choice > 0 && choice <= ${#files[@]})); then
|
if [[ $choice =~ ^[0-9]+$ ]] && ((choice > 0 && choice <= ${#files[@]})); then
|
||||||
file_name=$(echo "${files[$((choice - 1))]}" | cut -d' ' -f2)
|
file_name=$(echo "${files[$((choice - 1))]}" | cut -d' ' -f2)
|
||||||
service_name=$(echo "${files[$((choice - 1))]}" | cut -d' ' -f1)
|
service_name=$(echo "${files[$((choice - 1))]}" | cut -d' ' -f1)
|
||||||
selected_files+=("$file_name")
|
selected_files+=("$file_name")
|
||||||
@@ -3026,7 +2991,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-8 ${RESET}序号"
|
WARN "无效输入,请重新输入${LIGHT_YELLOW} 0-9 ${RESET}序号"
|
||||||
AUTH_MENU
|
AUTH_MENU
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
@@ -3257,7 +3222,6 @@ case $ipblack_choice in
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# 其他工具
|
# 其他工具
|
||||||
function OtherTools() {
|
function OtherTools() {
|
||||||
echo -e "1) 设置${BOLD}${YELLOW}系统命令${RESET}"
|
echo -e "1) 设置${BOLD}${YELLOW}系统命令${RESET}"
|
||||||
@@ -3285,10 +3249,8 @@ case $main_choice in
|
|||||||
sleep 2; main_menu
|
sleep 2; main_menu
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
## 主菜单
|
## 主菜单
|
||||||
function main_menu() {
|
function main_menu() {
|
||||||
echo -e "╔════════════════════════════════════════════════════╗"
|
echo -e "╔════════════════════════════════════════════════════╗"
|
||||||
|
|||||||
Reference in New Issue
Block a user