Compare commits
8 Commits
28a83e30f5
...
b1688d45a8
Author | SHA1 | Date | |
---|---|---|---|
b1688d45a8 | |||
5c7ccf4f4f | |||
ed14758b6b | |||
e01366ede1 | |||
1fe510105a | |||
ede14fd99b | |||
f4ec37b97c | |||
b504790438 |
29
.gitea/workflows/docker.yaml
Normal file
29
.gitea/workflows/docker.yaml
Normal file
@ -0,0 +1,29 @@
|
||||
name: Build Docker Image
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
Explore-Gitea-Actions:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: https://git.martin98.com/actions/checkout.git@v4
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: https://git.martin98.com/actions/login-action.git@v3
|
||||
with:
|
||||
registry: ${{ vars.DOCKER_HUB }}
|
||||
username: ${{ vars.DOCKER_USERNAME }}
|
||||
password: ${{ vars.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Build and push
|
||||
uses: https://git.martin98.com/actions/build-push-action.git@v4
|
||||
with:
|
||||
context: .
|
||||
platforms: linux/amd64
|
||||
push: true
|
||||
tags: |
|
||||
docker.martin98.com/martin_farm/init:latest
|
||||
docker.martin98.com/martin_farm/init:${{ github.sha }}
|
3
Dockerfile
Normal file
3
Dockerfile
Normal file
@ -0,0 +1,3 @@
|
||||
FROM scratch
|
||||
|
||||
COPY *.sh /scripts
|
39
README.md
39
README.md
@ -5,6 +5,14 @@
|
||||
curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/init-apt.sh | bash
|
||||
# docker-ce
|
||||
curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/init-docker.sh | bash
|
||||
# npm
|
||||
curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/init-npm.sh | bash
|
||||
# pip
|
||||
curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/init-pip.sh | bash
|
||||
# git
|
||||
curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/init-git.sh | bash
|
||||
|
||||
|
||||
# 初始化全部
|
||||
curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/init-all.sh | bash
|
||||
```
|
||||
@ -17,17 +25,32 @@ pip config set global.index-url https://mirrors.martin98.com/repository/pypi-gro
|
||||
npm config set registry https://mirrors.martin98.com/repository/npm-group/
|
||||
```
|
||||
|
||||
##### docker 容器中
|
||||
#### dockerfile
|
||||
##### DEB822 格式
|
||||
```bash
|
||||
RUN --mount=type=cache,target=/var/cache/apt \
|
||||
--mount=type=cache,target=/var/lib/apt \
|
||||
sed -i '6,$d' /etc/apt/sources.list.d/dhttps://mirrors.mebian.sources && \
|
||||
sed -i 's|http://deb.debian.org/debian|artin98.com/repository/debian-tsinghua/|g' /etc/apt/sources.list.d/debian.sources && \
|
||||
apt update && \
|
||||
apt install -y --no-install-recommends \
|
||||
gcc \
|
||||
g++ \
|
||||
python3-dev
|
||||
APT_OPTIONS="-o Acquire::https::mirrors.martin98.com::Verify-Peer=false -o Acquire::https::mirrors.martin98.com::Verify-Host=false" \
|
||||
type=$(cat /etc/*release | grep ^ID= | cut -d= -f2) && \
|
||||
sed -i '6,$d' /etc/apt/sources.list.d/${type}.sources && \
|
||||
sed -i "s|http://deb.debian.org/debian|https://mirrors.martin98.com/repository/${type}-tsinghua/|g" /etc/apt/sources.list.d/${type}.sources && \
|
||||
apt update $APT_OPTIONS && apt install $APT_OPTIONS -y ca-certificates curl && update-ca-certificates
|
||||
```
|
||||
##### 传统格式
|
||||
```bash
|
||||
RUN --mount=type=cache,target=/var/cache/apt \
|
||||
--mount=type=cache,target=/var/lib/apt \
|
||||
APT_OPTIONS="-o Acquire::https::mirrors.martin98.com::Verify-Peer=false -o Acquire::https::mirrors.martin98.com::Verify-Host=false" \
|
||||
type=$(cat /etc/*release | grep ^ID= | cut -d= -f2) && \
|
||||
release=$(cat /etc/*release | grep VERSION_CODENAME | cut -d= -f2) && \
|
||||
components=$([ "${type}" = "debian" ] && echo "main contrib non-free non-free-firmware" || ([ "${type}" = "ubuntu" ] && echo "main restricted universe multiverse")) && \
|
||||
|
||||
echo "deb https://mirrors.martin98.com/repository/${type}-tsinghua-${release}${suite#noble}/ ${suite} ${components}"
|
||||
|
||||
echo "deb https://mirrors.martin98.com/repository/${type}-tsinghua-${release}/ ${suite} ${components}"
|
||||
sed -i '6,$d' /etc/apt/sources.list.d/${type}.sources && \
|
||||
sed -i "s|http://deb.debian.org/debian|https://mirrors.martin98.com/repository/${type}-tsinghua/|g" /etc/apt/sources.list.d/${type}.sources && \
|
||||
apt update $APT_OPTIONS && apt install $APT_OPTIONS -y ca-certificates && update-ca-certificates
|
||||
```
|
||||
|
||||
#### 进入容器
|
||||
|
@ -4,3 +4,9 @@
|
||||
curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/init-apt.sh | bash
|
||||
# docker-ce
|
||||
curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/init-docker.sh | bash
|
||||
# npm
|
||||
curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/init-npm.sh | bash
|
||||
# pip
|
||||
curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/init-pip.sh | bash
|
||||
# git
|
||||
curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/init-git.sh | bash
|
46
init-apt.sh
46
init-apt.sh
@ -1,22 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 配置 ubuntu 源
|
||||
if [ -f /etc/apt/sources.list.d/ubuntu.sources ]; then
|
||||
cat > /etc/apt/sources.list.d/ubuntu.sources <<EOF
|
||||
Types: deb
|
||||
URIs: https://mirrors.martin98.com/repository/ubuntu-tsinghua/
|
||||
Suites: noble noble-updates noble-backports
|
||||
Components: main restricted universe multiverse
|
||||
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
|
||||
type=$(cat /etc/*release | grep ^ID= | cut -d= -f2)
|
||||
release=$(cat /etc/*release | grep VERSION_CODENAME | cut -d= -f2)
|
||||
components=$([ "${type}" = "debian" ] && echo "main contrib non-free non-free-firmware" || ([ "${type}" = "ubuntu" ] && echo "main restricted universe multiverse"))
|
||||
|
||||
# DEB822 格式
|
||||
# docker.martin98.com/library/ubuntu:latest
|
||||
# docker.martin98.com/library/debian:latest
|
||||
if [ -f /etc/apt/sources.list.d/${type}.sources ]; then
|
||||
cat > /etc/apt/sources.list.d/${type}.sources <<EOF
|
||||
$(for suite in ${release} ${release}-updates ${release}-backports; do
|
||||
echo "Types: deb"
|
||||
echo "URIs: https://mirrors.martin98.com/repository/${type}-tsinghua-${suite}/"
|
||||
echo "Suites: $suite"
|
||||
echo "Components: ${components}"
|
||||
echo "Signed-By: /usr/share/keyrings/${type}-archive-keyring.gpg"
|
||||
echo
|
||||
done)
|
||||
EOF
|
||||
# 配置 debian 源
|
||||
elif [ -f /etc/apt/sources.list.d/debian.sources ]; then
|
||||
cat > /etc/apt/sources.list.d/debian.sources <<EOF
|
||||
Types: deb
|
||||
URIs: https://mirrors.martin98.com/repository/debian-tsinghua/
|
||||
Suites: bookworm bookworm-updates bookworm-backports
|
||||
Components: main contrib non-free non-free-firmware
|
||||
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
||||
# 传统格式
|
||||
# docker.martin98.com/library/ubuntu:22.04
|
||||
elif [ -f /etc/apt/sources.list ]; then
|
||||
cat > /etc/apt/sources.list <<EOF
|
||||
$(for suite in ${release} ${release}-updates ${release}-backports; do
|
||||
echo "deb https://mirrors.martin98.com/repository/${type}-tsinghua-${suite}/ ${suite} ${components}"
|
||||
done)
|
||||
EOF
|
||||
else
|
||||
echo "没有找到合适的源"
|
||||
@ -38,8 +46,14 @@ server ntp5.aliyun.com iburst
|
||||
driftfile /var/lib/chrony/drift
|
||||
allow 127.0.0.1
|
||||
EOF
|
||||
|
||||
if pidof systemd >/dev/null 2>&1; then
|
||||
systemctl restart chrony && systemctl enable chrony
|
||||
else
|
||||
echo "systemctl 不存在,跳过 chrony 的重启"
|
||||
fi
|
||||
|
||||
# fix vim 粘贴
|
||||
if ! grep -q "set pastetoggle=" ~/.vimrc; then
|
||||
echo "set pastetoggle=" >> ~/.vimrc
|
||||
fi
|
8
init-git.sh
Normal file
8
init-git.sh
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 检查 git 是否安装
|
||||
if command -v pip &> /dev/null; then
|
||||
echo "git 已安装,正在配置镜像源..."
|
||||
git config --global url."https://git-proxy.hk.martin98.com/".insteadOf "https://"
|
||||
echo "镜像源配置完成。"
|
||||
fi
|
8
init-npm.sh
Normal file
8
init-npm.sh
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 检查 npm 是否安装
|
||||
if command -v npm &> /dev/null; then
|
||||
echo "npm 已安装,正在配置镜像源..."
|
||||
npm config set registry https://mirrors.martin98.com/repository/npm-group/
|
||||
echo "镜像源配置完成。"
|
||||
fi
|
8
init-pip.sh
Normal file
8
init-pip.sh
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 检查 pip 是否安装
|
||||
if command -v pip &> /dev/null; then
|
||||
echo "pip 已安装,正在配置镜像源..."
|
||||
pip config set global.index-url https://mirrors.martin98.com/repository/pypi-group/simple
|
||||
echo "镜像源配置完成。"
|
||||
fi
|
Loading…
x
Reference in New Issue
Block a user