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
|
curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/init-apt.sh | bash
|
||||||
# docker-ce
|
# docker-ce
|
||||||
curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/init-docker.sh | bash
|
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
|
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/
|
npm config set registry https://mirrors.martin98.com/repository/npm-group/
|
||||||
```
|
```
|
||||||
|
|
||||||
##### docker 容器中
|
#### dockerfile
|
||||||
|
##### DEB822 格式
|
||||||
```bash
|
```bash
|
||||||
RUN --mount=type=cache,target=/var/cache/apt \
|
RUN --mount=type=cache,target=/var/cache/apt \
|
||||||
--mount=type=cache,target=/var/lib/apt \
|
--mount=type=cache,target=/var/lib/apt \
|
||||||
sed -i '6,$d' /etc/apt/sources.list.d/dhttps://mirrors.mebian.sources && \
|
APT_OPTIONS="-o Acquire::https::mirrors.martin98.com::Verify-Peer=false -o Acquire::https::mirrors.martin98.com::Verify-Host=false" \
|
||||||
sed -i 's|http://deb.debian.org/debian|artin98.com/repository/debian-tsinghua/|g' /etc/apt/sources.list.d/debian.sources && \
|
type=$(cat /etc/*release | grep ^ID= | cut -d= -f2) && \
|
||||||
apt update && \
|
sed -i '6,$d' /etc/apt/sources.list.d/${type}.sources && \
|
||||||
apt install -y --no-install-recommends \
|
sed -i "s|http://deb.debian.org/debian|https://mirrors.martin98.com/repository/${type}-tsinghua/|g" /etc/apt/sources.list.d/${type}.sources && \
|
||||||
gcc \
|
apt update $APT_OPTIONS && apt install $APT_OPTIONS -y ca-certificates curl && update-ca-certificates
|
||||||
g++ \
|
```
|
||||||
python3-dev
|
##### 传统格式
|
||||||
|
```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
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 进入容器
|
#### 进入容器
|
||||||
|
@ -3,4 +3,10 @@
|
|||||||
# apt + ntp
|
# apt + ntp
|
||||||
curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/init-apt.sh | bash
|
curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/init-apt.sh | bash
|
||||||
# docker-ce
|
# docker-ce
|
||||||
curl -sSL https://git.martin98.com/MartinFarm/init/raw/branch/main/init-docker.sh | bash
|
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
|
#!/bin/bash
|
||||||
|
|
||||||
# 配置 ubuntu 源
|
type=$(cat /etc/*release | grep ^ID= | cut -d= -f2)
|
||||||
if [ -f /etc/apt/sources.list.d/ubuntu.sources ]; then
|
release=$(cat /etc/*release | grep VERSION_CODENAME | cut -d= -f2)
|
||||||
cat > /etc/apt/sources.list.d/ubuntu.sources <<EOF
|
components=$([ "${type}" = "debian" ] && echo "main contrib non-free non-free-firmware" || ([ "${type}" = "ubuntu" ] && echo "main restricted universe multiverse"))
|
||||||
Types: deb
|
|
||||||
URIs: https://mirrors.martin98.com/repository/ubuntu-tsinghua/
|
# DEB822 格式
|
||||||
Suites: noble noble-updates noble-backports
|
# docker.martin98.com/library/ubuntu:latest
|
||||||
Components: main restricted universe multiverse
|
# docker.martin98.com/library/debian:latest
|
||||||
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
|
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
|
EOF
|
||||||
# 配置 debian 源
|
# 传统格式
|
||||||
elif [ -f /etc/apt/sources.list.d/debian.sources ]; then
|
# docker.martin98.com/library/ubuntu:22.04
|
||||||
cat > /etc/apt/sources.list.d/debian.sources <<EOF
|
elif [ -f /etc/apt/sources.list ]; then
|
||||||
Types: deb
|
cat > /etc/apt/sources.list <<EOF
|
||||||
URIs: https://mirrors.martin98.com/repository/debian-tsinghua/
|
$(for suite in ${release} ${release}-updates ${release}-backports; do
|
||||||
Suites: bookworm bookworm-updates bookworm-backports
|
echo "deb https://mirrors.martin98.com/repository/${type}-tsinghua-${suite}/ ${suite} ${components}"
|
||||||
Components: main contrib non-free non-free-firmware
|
done)
|
||||||
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
|
||||||
EOF
|
EOF
|
||||||
else
|
else
|
||||||
echo "没有找到合适的源"
|
echo "没有找到合适的源"
|
||||||
@ -38,8 +46,14 @@ server ntp5.aliyun.com iburst
|
|||||||
driftfile /var/lib/chrony/drift
|
driftfile /var/lib/chrony/drift
|
||||||
allow 127.0.0.1
|
allow 127.0.0.1
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if pidof systemd >/dev/null 2>&1; then
|
if pidof systemd >/dev/null 2>&1; then
|
||||||
systemctl restart chrony && systemctl enable chrony
|
systemctl restart chrony && systemctl enable chrony
|
||||||
else
|
else
|
||||||
echo "systemctl 不存在,跳过 chrony 的重启"
|
echo "systemctl 不存在,跳过 chrony 的重启"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# fix vim 粘贴
|
||||||
|
if ! grep -q "set pastetoggle=" ~/.vimrc; then
|
||||||
|
echo "set pastetoggle=" >> ~/.vimrc
|
||||||
fi
|
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