diff --git a/docker-compose.yaml b/docker-compose.yaml index b2a40b6..4d0bd36 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -6,15 +6,18 @@ x-app-config: &app-config - ./:/app services: + alpine: + <<: *app-config + image: alpine:latest debian: <<: *app-config - image: docker.martin98.com/library/debian:latest + image: debian:latest ubuntu: <<: *app-config - image: docker.martin98.com/library/ubuntu:latest + image: ubuntu:latest ubuntu-2204: <<: *app-config - image: docker.martin98.com/library/ubuntu:22.04 \ No newline at end of file + image: ubuntu:22.04 \ No newline at end of file diff --git a/docker-install.sh b/docker-install.sh index 831cc85..eacdb23 100644 --- a/docker-install.sh +++ b/docker-install.sh @@ -93,7 +93,7 @@ if [ -z "$CHANNEL" ]; then CHANNEL=$DEFAULT_CHANNEL_VALUE fi -DEFAULT_DOWNLOAD_URL="https://mirrors.martin98.com/repository/docker-ce/" +DEFAULT_DOWNLOAD_URL="https://reg.martin98.com/repository/docker-ce/" #DEFAULT_DOWNLOAD_URL="https://download.docker.com" if [ -z "$DOWNLOAD_URL" ]; then DOWNLOAD_URL=$DEFAULT_DOWNLOAD_URL diff --git a/init-apt.sh b/init-apt.sh index e29080c..07e9b07 100644 --- a/init-apt.sh +++ b/init-apt.sh @@ -1,50 +1,83 @@ #!/bin/bash -APT_OPTIONS="-o Acquire::https::mirrors.martin98.com::Verify-Peer=false -o Acquire::https::mirrors.martin98.com::Verify-Host=false" -lsb_dist=$(cat /etc/*release | grep ^ID= | cut -d= -f2) # ubuntu or debian? -release=$(cat /etc/*release | grep VERSION_CODENAME | cut -d= -f2) # ubuntu(jammy oracular) debian(bookworm).... -components=$([ "${lsb_dist=}" = "debian" ] && echo "main contrib non-free non-free-firmware" || ([ "${lsb_dist=}" = "ubuntu" ] && echo "main restricted universe multiverse")) +# Alpine 相关处理 +handle_alpine() { + echo "检测到 Alpine,切换 apk 源..." + sed -i 's#https\?://dl-cdn.alpinelinux.org/alpine#https://reg.martin98.com/repository/alpine#g' /etc/apk/repositories -# 删除 DEB822 格式 -if [ -f /etc/apt/sources.list.d/${lsb_dist}.sources ]; then - rm /etc/apt/sources.list.d/${lsb_dist}.sources -fi -# 配置镜像源 -cat < /etc/apt/sources.list -deb https://mirrors.martin98.com/repository/$lsb_dist $release $components -deb https://mirrors.martin98.com/repository/$lsb_dist $release-updates $components -deb https://mirrors.martin98.com/repository/$lsb_dist $release-backports $components -deb https://mirrors.martin98.com/repository/$lsb_dist $release-security $components + echo "安装 openntpd 和 vim..." + apk update + apk add --no-cache openntpd vim + + # 启动并设置 openntpd 开机自启 + rc-service openntpd restart + rc-update add openntpd default + + # 配置 vim 粘贴 + if ! grep -q "set pastetoggle=" ~/.vimrc; then + echo "set pastetoggle=" >> ~/.vimrc + fi +} + +# Debian/Ubuntu 相关处理 +handle_debian_ubuntu() { + APT_OPTIONS="-o Acquire::https::reg.martin98.com::Verify-Peer=false -o Acquire::https::reg.martin98.com::Verify-Host=false" + lsb_dist=$(cat /etc/*release | grep ^ID= | cut -d= -f2) # ubuntu or debian? + release=$(cat /etc/*release | grep VERSION_CODENAME | cut -d= -f2) # ubuntu(jammy oracular) debian(bookworm).... + components=$([ "${lsb_dist=}" = "debian" ] && echo "main contrib non-free non-free-firmware" || ([ "${lsb_dist=}" = "ubuntu" ] && echo "main restricted universe multiverse")) + + # 删除 DEB822 格式 + if [ -f /etc/apt/sources.list.d/${lsb_dist}.sources ]; then + rm /etc/apt/sources.list.d/${lsb_dist}.sources + fi + # 配置镜像源 + cat < /etc/apt/sources.list + deb https://reg.martin98.com/repository/$lsb_dist $release $components + deb https://reg.martin98.com/repository/$lsb_dist $release-updates $components + deb https://reg.martin98.com/repository/$lsb_dist $release-backports $components EOF -for RELEASE in "$@"; do - echo "deb https://mirrors.martin98.com/repository/$lsb_dist $RELEASE $components" >> /etc/apt/sources.list -done + for RELEASE in "$@"; do + echo "deb https://reg.martin98.com/repository/$lsb_dist $RELEASE $components" >> /etc/apt/sources.list + done + # 关闭交互式弹窗 + echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections -# 关闭交互式弹窗 -echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections + apt update $APT_OPTIONS && apt install $APT_OPTIONS -y ca-certificates curl && update-ca-certificates + apt update && apt upgrade -y -apt update $APT_OPTIONS && apt install $APT_OPTIONS -y ca-certificates curl && update-ca-certificates -apt update && apt upgrade -y + # 检查并安装 vim + if ! command -v vim >/dev/null 2>&1; then + apt install $APT_OPTIONS -y vim + fi -# NTP -# 启用阿里云 ntp -if pidof systemd >/dev/null 2>&1; then - apt install chrony -y - cat > /etc/chrony.conf </dev/null 2>&1; then + apt install chrony -y + cat > /etc/chrony.conf < /etc/apt/sources.list.d/docker.list + echo "deb [signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://reg.martin98.com/repository/docker-ce/linux/$lsb_dist $release stable" > /etc/apt/sources.list.d/docker.list curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/docker-install.sh | sh fi @@ -32,9 +32,7 @@ fi cat > /etc/docker/daemon.json <