From 7f3a72fd3c12967f1f330de51b123f23990aaf6b Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 13 Aug 2024 23:33:42 +0800 Subject: refactor(docker/debian-dev): rename debian-dev to crupest-debian-dev. --- docker/crupest-debian-dev/bootstrap/apt-source/setup.bash | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/setup.bash (limited to 'docker/crupest-debian-dev/bootstrap/apt-source/setup.bash') diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash b/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash new file mode 100755 index 0000000..60e635b --- /dev/null +++ b/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash @@ -0,0 +1,12 @@ +#! /usr/bin/env bash + +set -e + +dir=$(dirname "$0") + +if [[ -n $IN_CHINA ]]; then + "$dir/replace-domain.bash" "$(cat "$dir/china-source.txt")" +fi + +"$dir/install-apt-https.bash" +"$dir/replace-http.bash" -- cgit v1.2.3 From e272d8667a64852452a076d180149a975e52a109 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 14 Aug 2024 00:28:12 +0800 Subject: feat(docker/debian-dev): add more output, rename vars and fix some bugs. --- docker/crupest-debian-dev/Dockerfile | 14 +++++++------- .../bootstrap/apt-source/install-apt-https.bash | 1 + .../crupest-debian-dev/bootstrap/apt-source/setup.bash | 7 ++++++- .../bootstrap/bash-profile/code-server.bash | 2 +- docker/crupest-debian-dev/bootstrap/setup-base.bash | 9 +++++++++ .../crupest-debian-dev/bootstrap/setup-code-server.bash | 16 +++++++++++++++- docker/crupest-debian-dev/bootstrap/setup-dev.bash | 6 ++++++ docker/crupest-debian-dev/bootstrap/setup-user.bash | 13 ++++++++++++- docker/crupest-debian-dev/bootstrap/setup.bash | 12 ++++++++++-- 9 files changed, 67 insertions(+), 13 deletions(-) (limited to 'docker/crupest-debian-dev/bootstrap/apt-source/setup.bash') diff --git a/docker/crupest-debian-dev/Dockerfile b/docker/crupest-debian-dev/Dockerfile index a92ea4f..f7933a7 100644 --- a/docker/crupest-debian-dev/Dockerfile +++ b/docker/crupest-debian-dev/Dockerfile @@ -1,19 +1,19 @@ FROM debian:latest -ARG USERNAME=crupest +ARG USER=crupest ARG IN_CHINA= -ARG SETUP_CODE_SERVER=true +ARG CODE_SERVER=true -ENV USERNAME=${USERNAME} -ENV IN_CHINA=${IN_CHINA} -ENV SETUP_CODE_SERVER=${SETUP_CODE_SERVER} +ENV CRUPEST_DEBIAN_DEV_USER=${USER} +ENV CRUPEST_DEBIAN_DEV_IN_CHINA=${IN_CHINA} +ENV CRUPEST_DEBIAN_DEV_SETUP_CODE_SERVER=${CODE_SERVER} ADD bootstrap /bootstrap -ENV LANG=en_US.utf8 RUN /bootstrap/setup.bash +ENV LANG=en_US.utf8 -USER ${USERNAME} +USER ${USER} EXPOSE 8080 VOLUME [ "/data" ] diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/install-apt-https.bash b/docker/crupest-debian-dev/bootstrap/apt-source/install-apt-https.bash index 05d372b..70fb371 100755 --- a/docker/crupest-debian-dev/bootstrap/apt-source/install-apt-https.bash +++ b/docker/crupest-debian-dev/bootstrap/apt-source/install-apt-https.bash @@ -4,4 +4,5 @@ set -e echo "Install apt https transport." apt-get update +apt-get install -y apt-utils apt-get install -y apt-transport-https ca-certificates diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash b/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash index 60e635b..60583d4 100755 --- a/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash +++ b/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash @@ -4,9 +4,14 @@ set -e dir=$(dirname "$0") -if [[ -n $IN_CHINA ]]; then +echo "Setting up apt source..." + +if [[ -n $CRUPEST_DEBIAN_DEV_IN_CHINA ]]; then + echo "In China, using China source..." "$dir/replace-domain.bash" "$(cat "$dir/china-source.txt")" fi "$dir/install-apt-https.bash" "$dir/replace-http.bash" + +echo "Setting up apt source done." diff --git a/docker/crupest-debian-dev/bootstrap/bash-profile/code-server.bash b/docker/crupest-debian-dev/bootstrap/bash-profile/code-server.bash index 443eb0b..e683e76 100644 --- a/docker/crupest-debian-dev/bootstrap/bash-profile/code-server.bash +++ b/docker/crupest-debian-dev/bootstrap/bash-profile/code-server.bash @@ -6,7 +6,7 @@ CODE_SERVER_PORT=8080 if which "$CODE_SERVER_PROGRAM" > /dev/null 2>&1; then if ! pgrep -f "$CODE_SERVER_PROGRAM" > /dev/null 2>&1; then mkdir -p ~/.local/share/code-server - nohup "$CODE_SERVER_PROGRAM" "--bind-addr", "0.0.0.0:$CODE_SERVER_PORT" \ + "$CODE_SERVER_PROGRAM" "--bind-addr", "0.0.0.0:$CODE_SERVER_PORT" \ > ~/.local/share/code-server/log 2> ~/.local/share/code-server/error & fi fi diff --git a/docker/crupest-debian-dev/bootstrap/setup-base.bash b/docker/crupest-debian-dev/bootstrap/setup-base.bash index 060daeb..e918a8b 100755 --- a/docker/crupest-debian-dev/bootstrap/setup-base.bash +++ b/docker/crupest-debian-dev/bootstrap/setup-base.bash @@ -4,8 +4,17 @@ set -e . /bootstrap/func.bash +echo "Setting up basic system function..." + +echo "Installing basic packages..." +apt-get install -y apt-utils apt-get install -y locales procps vim less man bash-completion rsync curl wget +echo "Installing basic packages done." +echo "Setting up locale..." localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +echo "Setting up locale done." append-bash-profile bash-completion.bash + +echo "Setting up basic system function done." diff --git a/docker/crupest-debian-dev/bootstrap/setup-code-server.bash b/docker/crupest-debian-dev/bootstrap/setup-code-server.bash index cb9a407..922a88d 100755 --- a/docker/crupest-debian-dev/bootstrap/setup-code-server.bash +++ b/docker/crupest-debian-dev/bootstrap/setup-code-server.bash @@ -4,11 +4,25 @@ set -e . /bootstrap/func.bash +echo "Setting up code server..." + +echo "Get latest version of code-server..." VERSION=$(curl -s https://api.github.com/repos/coder/code-server/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/') -url="https://github.com/coder/code-server/releases/download/v${VERSION}/code-server_${VERSION}_amd64.deb" +echo "Current latest version of code-server is $VERSION" +echo "Downloading code-server..." +url="https://github.com/coder/code-server/releases/download/v${VERSION}/code-server_${VERSION}_amd64.deb" curl -sSfOL "$url" +echo "Downloading code-server done." + +echo "Installing code-server..." apt install "./code-server_${VERSION}_amd64.deb" +echo "Installing code-server done." + +echo "Cleaning up deb..." rm "code-server_${VERSION}_amd64.deb" +echo "Cleaning up deb done." append-bash-profile code-server.bash + +echo "Setting up code server done." diff --git a/docker/crupest-debian-dev/bootstrap/setup-dev.bash b/docker/crupest-debian-dev/bootstrap/setup-dev.bash index 8d26328..9e2c6de 100755 --- a/docker/crupest-debian-dev/bootstrap/setup-dev.bash +++ b/docker/crupest-debian-dev/bootstrap/setup-dev.bash @@ -4,9 +4,15 @@ set -e . /bootstrap/func.bash +echo "Setting up dev function..." + +echo "Installing dev packages..." apt-get install -y build-essential git devscripts debhelper quilt \ cpio kmod bc python3 bison flex libelf-dev libssl-dev libncurses-dev dwarves +echo "Installing dev packages done." append-bash-profile dquilt.bash copy-home-dot-file devscripts copy-home-dot-file quiltrc-dpkg + +echo "Setting up dev function done." diff --git a/docker/crupest-debian-dev/bootstrap/setup-user.bash b/docker/crupest-debian-dev/bootstrap/setup-user.bash index 0eccde4..f74dcdb 100755 --- a/docker/crupest-debian-dev/bootstrap/setup-user.bash +++ b/docker/crupest-debian-dev/bootstrap/setup-user.bash @@ -2,8 +2,19 @@ set -e +echo "Setting up user..." + +echo "Installing sudo..." apt-get install -y sudo +echo "Installing sudo done." +echo "Setting up sudo..." sed -i.bak 's|%sudo[[:space:]]\+ALL=(ALL:ALL)[[:space:]]\+ALL|%sudo ALL=(ALL:ALL) NOPASSWD: ALL|' /etc/sudoers +echo "Setting up sudo done." + +echo "Adding user $CRUPEST_DEBIAN_DEV_USER ..." +useradd -m -G sudo -s /usr/bin/bash "$CRUPEST_DEBIAN_DEV_USER" +echo "Adding user done." + +echo "Setting up user done." -useradd -m -G sudo -s /usr/bin/bash "$USERNAME" diff --git a/docker/crupest-debian-dev/bootstrap/setup.bash b/docker/crupest-debian-dev/bootstrap/setup.bash index 1aaff50..09b8137 100755 --- a/docker/crupest-debian-dev/bootstrap/setup.bash +++ b/docker/crupest-debian-dev/bootstrap/setup.bash @@ -4,19 +4,27 @@ set -e export DEBIAN_FRONTEND=noninteractive +echo "Setting up crupest-debian-dev..." + . /bootstrap/func.bash /bootstrap/apt-source/setup.bash +echo "Updating apt source index..." apt-get update +echo "Updating apt source index done." /bootstrap/setup-user.bash /bootstrap/setup-base.bash /bootstrap/setup-dev.bash -if is_true "$SETUP_CODE_SERVER"; then +if is_true "$CRUPEST_DEBIAN_DEV_SETUP_CODE_SERVER"; then + echo "CRUPEST_DEBIAN_DEV_SETUP_CODE_SERVER is true, setting up code-server..." /bootstrap/setup-code-server.bash fi - +echo "Cleaning up apt source index..." rm -rf /var/lib/apt/lists/* +echo "Cleaning up apt source index done." + +echo "Setting up crupest-debian-dev done." -- cgit v1.2.3 From 61cd7dabdd2c5272a952edd40dffcbc368b596b1 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 14 Aug 2024 00:28:12 +0800 Subject: feat(docker/debian-dev): support both 11 and 12 for apt source. --- .../bootstrap/apt-source/11/get-domain.bash | 5 +++++ .../bootstrap/apt-source/11/replace-domain.bash | 7 +++++++ .../bootstrap/apt-source/11/replace-http.bash | 7 +++++++ .../bootstrap/apt-source/12/get-domain.bash | 6 ++++++ .../bootstrap/apt-source/12/replace-domain.bash | 7 +++++++ .../bootstrap/apt-source/12/replace-http.bash | 7 +++++++ .../bootstrap/apt-source/get-domain.bash | 6 ------ .../bootstrap/apt-source/replace-domain.bash | 7 ------- .../bootstrap/apt-source/replace-http.bash | 7 ------- .../bootstrap/apt-source/setup.bash | 22 +++++++++++++++++++--- .../bootstrap/get-debian-version.bash | 11 +++++++++++ 11 files changed, 69 insertions(+), 23 deletions(-) create mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/11/get-domain.bash create mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/11/replace-domain.bash create mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/11/replace-http.bash create mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/12/get-domain.bash create mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/12/replace-domain.bash create mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/12/replace-http.bash delete mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/get-domain.bash delete mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/replace-domain.bash delete mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/replace-http.bash create mode 100755 docker/crupest-debian-dev/bootstrap/get-debian-version.bash (limited to 'docker/crupest-debian-dev/bootstrap/apt-source/setup.bash') diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/11/get-domain.bash b/docker/crupest-debian-dev/bootstrap/apt-source/11/get-domain.bash new file mode 100755 index 0000000..d44ea65 --- /dev/null +++ b/docker/crupest-debian-dev/bootstrap/apt-source/11/get-domain.bash @@ -0,0 +1,5 @@ +#! /usr/bin/env bash + +set -e + +sed "s|.*https\?://\([-_.a-zA-Z0-9]\+\)/.*|\\1|;q" /etc/apt/sources.list diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/11/replace-domain.bash b/docker/crupest-debian-dev/bootstrap/apt-source/11/replace-domain.bash new file mode 100755 index 0000000..86e88dc --- /dev/null +++ b/docker/crupest-debian-dev/bootstrap/apt-source/11/replace-domain.bash @@ -0,0 +1,7 @@ +#! /usr/bin/env bash + +set -e + +echo "Backup /etc/apt/sources.list to /etc/apt/sources.list.bak." +echo "Replace source domain in /etc/apt/sources.list to $1." +sed -i.bak "s|\(https\?://\)[-_.a-zA-Z0-9]\+/|\\1$1/|" /etc/apt/sources.list diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/11/replace-http.bash b/docker/crupest-debian-dev/bootstrap/apt-source/11/replace-http.bash new file mode 100755 index 0000000..fae082a --- /dev/null +++ b/docker/crupest-debian-dev/bootstrap/apt-source/11/replace-http.bash @@ -0,0 +1,7 @@ +#! /usr/bin/env bash + +set -e + +echo "Backup /etc/apt/sources.list to /etc/apt/sources.list.bak." +echo "Replace http to https in /etc/apt/sources.list." +sed -i.bak 's/https\?/https/' /etc/apt/sources.list diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/12/get-domain.bash b/docker/crupest-debian-dev/bootstrap/apt-source/12/get-domain.bash new file mode 100755 index 0000000..a24538c --- /dev/null +++ b/docker/crupest-debian-dev/bootstrap/apt-source/12/get-domain.bash @@ -0,0 +1,6 @@ +#! /usr/bin/env bash + +set -e + +grep -e 'URIs:' /etc/apt/sources.list.d/debian.sources | \ + sed -E 's|URIs:\s*https?://([-_.a-zA-Z0-9]+)/.*|\1|;q' diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/12/replace-domain.bash b/docker/crupest-debian-dev/bootstrap/apt-source/12/replace-domain.bash new file mode 100755 index 0000000..d55307c --- /dev/null +++ b/docker/crupest-debian-dev/bootstrap/apt-source/12/replace-domain.bash @@ -0,0 +1,7 @@ +#! /usr/bin/env bash + +set -e + +echo "Backup /etc/apt/sources.list.d/debian.sources to /etc/apt/sources.list.d/debian.sources.bak." +echo "Replace source domain in /etc/apt/sources.list.d/debian.sources to $1." +sed -i.bak -E "s|(URIs:\\s*https?://)[-_.a-zA-Z0-9]+(/.*)|\\1$1\\2|" /etc/apt/sources.list.d/debian.sources diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/12/replace-http.bash b/docker/crupest-debian-dev/bootstrap/apt-source/12/replace-http.bash new file mode 100755 index 0000000..ed4391d --- /dev/null +++ b/docker/crupest-debian-dev/bootstrap/apt-source/12/replace-http.bash @@ -0,0 +1,7 @@ +#! /usr/bin/env bash + +set -e + +echo "Backup /etc/apt/sources.list to /etc/apt/sources.list.d/debian.sources.bak." +echo "Replace http to https in /etc/apt/sources.list.d/debian.sources." +sed -i.bak -E "s|(URIs:\\s*)https?(://[-_.a-zA-Z0-9]+/.*)|\\1https\\2|" /etc/apt/sources.list.d/debian.sources diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/get-domain.bash b/docker/crupest-debian-dev/bootstrap/apt-source/get-domain.bash deleted file mode 100755 index a24538c..0000000 --- a/docker/crupest-debian-dev/bootstrap/apt-source/get-domain.bash +++ /dev/null @@ -1,6 +0,0 @@ -#! /usr/bin/env bash - -set -e - -grep -e 'URIs:' /etc/apt/sources.list.d/debian.sources | \ - sed -E 's|URIs:\s*https?://([-_.a-zA-Z0-9]+)/.*|\1|;q' diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/replace-domain.bash b/docker/crupest-debian-dev/bootstrap/apt-source/replace-domain.bash deleted file mode 100755 index d55307c..0000000 --- a/docker/crupest-debian-dev/bootstrap/apt-source/replace-domain.bash +++ /dev/null @@ -1,7 +0,0 @@ -#! /usr/bin/env bash - -set -e - -echo "Backup /etc/apt/sources.list.d/debian.sources to /etc/apt/sources.list.d/debian.sources.bak." -echo "Replace source domain in /etc/apt/sources.list.d/debian.sources to $1." -sed -i.bak -E "s|(URIs:\\s*https?://)[-_.a-zA-Z0-9]+(/.*)|\\1$1\\2|" /etc/apt/sources.list.d/debian.sources diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/replace-http.bash b/docker/crupest-debian-dev/bootstrap/apt-source/replace-http.bash deleted file mode 100755 index ed4391d..0000000 --- a/docker/crupest-debian-dev/bootstrap/apt-source/replace-http.bash +++ /dev/null @@ -1,7 +0,0 @@ -#! /usr/bin/env bash - -set -e - -echo "Backup /etc/apt/sources.list to /etc/apt/sources.list.d/debian.sources.bak." -echo "Replace http to https in /etc/apt/sources.list.d/debian.sources." -sed -i.bak -E "s|(URIs:\\s*)https?(://[-_.a-zA-Z0-9]+/.*)|\\1https\\2|" /etc/apt/sources.list.d/debian.sources diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash b/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash index 60583d4..6e504ef 100755 --- a/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash +++ b/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash @@ -2,16 +2,32 @@ set -e -dir=$(dirname "$0") +dir=/bootstrap/apt-source + +echo "Getting debian version..." +debian_version=$(bash "$dir/../get-debian-version.bash") + +if [[ -z $debian_version ]]; then + echo "Debian version not found." + exit 1 +else + echo "Debian version: $debian_version" +fi + +if [[ $debian_version -ge 12 ]]; then + setup_dir=$dir/12 +else + setup_dir=$dir/11 +fi echo "Setting up apt source..." if [[ -n $CRUPEST_DEBIAN_DEV_IN_CHINA ]]; then echo "In China, using China source..." - "$dir/replace-domain.bash" "$(cat "$dir/china-source.txt")" + "$setup_dir/replace-domain.bash" "$(cat "$dir/china-source.txt")" fi "$dir/install-apt-https.bash" -"$dir/replace-http.bash" +"$setup_dir/replace-http.bash" echo "Setting up apt source done." diff --git a/docker/crupest-debian-dev/bootstrap/get-debian-version.bash b/docker/crupest-debian-dev/bootstrap/get-debian-version.bash new file mode 100755 index 0000000..305e628 --- /dev/null +++ b/docker/crupest-debian-dev/bootstrap/get-debian-version.bash @@ -0,0 +1,11 @@ +#! /usr/bin/env bash + +if [ -f /etc/os-release ]; then + . /etc/os-release + if [ "$ID" = "debian" ]; then + echo "$VERSION_ID" + exit 0 + fi +else + +exit 1 -- cgit v1.2.3 From 874dce759fefc094ed3d51e9d350f424ac65a94a Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 14 Aug 2024 00:28:12 +0800 Subject: feat(docker/debian-dev): add data/state mount dir, fix debian version. --- docker/crupest-debian-dev/Dockerfile | 2 +- docker/crupest-debian-dev/bootstrap/apt-source/setup.bash | 2 +- docker/crupest-debian-dev/bootstrap/get-debian-version.bash | 2 +- docker/crupest-debian-dev/bootstrap/setup-base.bash | 5 +++++ 4 files changed, 8 insertions(+), 3 deletions(-) (limited to 'docker/crupest-debian-dev/bootstrap/apt-source/setup.bash') diff --git a/docker/crupest-debian-dev/Dockerfile b/docker/crupest-debian-dev/Dockerfile index 1ac4acd..3293f03 100644 --- a/docker/crupest-debian-dev/Dockerfile +++ b/docker/crupest-debian-dev/Dockerfile @@ -17,5 +17,5 @@ USER ${USER} WORKDIR /home/${USER} EXPOSE 8080 -VOLUME [ "/data" ] +VOLUME [ "/data", "/state" ] CMD [ "bash", "-l" ] diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash b/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash index 6e504ef..cb3d3e4 100755 --- a/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash +++ b/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash @@ -5,7 +5,7 @@ set -e dir=/bootstrap/apt-source echo "Getting debian version..." -debian_version=$(bash "$dir/../get-debian-version.bash") +debian_version=$("$dir/../get-debian-version.bash") if [[ -z $debian_version ]]; then echo "Debian version not found." diff --git a/docker/crupest-debian-dev/bootstrap/get-debian-version.bash b/docker/crupest-debian-dev/bootstrap/get-debian-version.bash index 305e628..9cd468a 100755 --- a/docker/crupest-debian-dev/bootstrap/get-debian-version.bash +++ b/docker/crupest-debian-dev/bootstrap/get-debian-version.bash @@ -6,6 +6,6 @@ if [ -f /etc/os-release ]; then echo "$VERSION_ID" exit 0 fi -else +fi exit 1 diff --git a/docker/crupest-debian-dev/bootstrap/setup-base.bash b/docker/crupest-debian-dev/bootstrap/setup-base.bash index e918a8b..6a715c7 100755 --- a/docker/crupest-debian-dev/bootstrap/setup-base.bash +++ b/docker/crupest-debian-dev/bootstrap/setup-base.bash @@ -15,6 +15,11 @@ echo "Setting up locale..." localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 echo "Setting up locale done." +echo "Creating data/state dir..." +mkdir -p /data /state +chown $CRUPEST_DEBIAN_DEV_USER:$CRUPEST_DEBIAN_DEV_USER /data /state +echo "Creating data dir done." + append-bash-profile bash-completion.bash echo "Setting up basic system function done." -- cgit v1.2.3 From d8d66fc6227101472ac195a116c779d3aa099737 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 14 Aug 2024 00:28:12 +0800 Subject: feat(docker/debian-dev): add deb-src and llvm for china. --- .../bootstrap/apt-source/11/add-deb-src.bash | 14 ++++++++++++++ .../bootstrap/apt-source/12/add-deb-src.bash | 22 ++++++++++++++++++++++ .../bootstrap/apt-source/china-source.txt | 2 +- .../bootstrap/apt-source/setup.bash | 1 + .../bootstrap/extra/setup-llvm.bash | 14 ++++++++++++-- .../bootstrap/get-debian-version.bash | 2 ++ .../crupest-debian-dev/bootstrap/setup-base.bash | 2 +- docker/crupest-debian-dev/bootstrap/setup-dev.bash | 4 ++-- 8 files changed, 55 insertions(+), 6 deletions(-) create mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/11/add-deb-src.bash create mode 100755 docker/crupest-debian-dev/bootstrap/apt-source/12/add-deb-src.bash (limited to 'docker/crupest-debian-dev/bootstrap/apt-source/setup.bash') diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/11/add-deb-src.bash b/docker/crupest-debian-dev/bootstrap/apt-source/11/add-deb-src.bash new file mode 100755 index 0000000..e134a00 --- /dev/null +++ b/docker/crupest-debian-dev/bootstrap/apt-source/11/add-deb-src.bash @@ -0,0 +1,14 @@ +#! /usr/bin/env bash + +set -e + +dir=$(dirname "$0") +domain=$("$dir/get-domain.bash") + +cat <> /etc/apt/sources.list + +deb-src https://$domain/debian/ bullseye main +deb-src https://$domain/debian-security/ bullseye-security main +deb-src https://$domain/debian-updates/ bullseye-updates main + +EOF diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/12/add-deb-src.bash b/docker/crupest-debian-dev/bootstrap/apt-source/12/add-deb-src.bash new file mode 100755 index 0000000..cf741d6 --- /dev/null +++ b/docker/crupest-debian-dev/bootstrap/apt-source/12/add-deb-src.bash @@ -0,0 +1,22 @@ +#! /usr/bin/env bash + +set -e + +dir=$(dirname "$0") +domain=$("$dir/get-domain.bash") + +cat <> /etc/apt/sources.list.d/debian.sources + +Types: deb-src +URIs: https://$domain/debian +Suites: bookworm bookworm-updates +Components: main +Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg + +Types: deb-src +URIs: https://$domain/debian-security +Suites: bookworm-security +Components: main +Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg + +EOF \ No newline at end of file diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/china-source.txt b/docker/crupest-debian-dev/bootstrap/apt-source/china-source.txt index 3821ffc..4312686 100644 --- a/docker/crupest-debian-dev/bootstrap/apt-source/china-source.txt +++ b/docker/crupest-debian-dev/bootstrap/apt-source/china-source.txt @@ -1 +1 @@ -mirrors.ustc.edu.cn +mirrors.tuna.tsinghua.edu.cn \ No newline at end of file diff --git a/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash b/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash index cb3d3e4..cdf68af 100755 --- a/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash +++ b/docker/crupest-debian-dev/bootstrap/apt-source/setup.bash @@ -29,5 +29,6 @@ fi "$dir/install-apt-https.bash" "$setup_dir/replace-http.bash" +"$setup_dir/add-deb-src.bash" echo "Setting up apt source done." diff --git a/docker/crupest-debian-dev/bootstrap/extra/setup-llvm.bash b/docker/crupest-debian-dev/bootstrap/extra/setup-llvm.bash index 5a55902..48dde86 100755 --- a/docker/crupest-debian-dev/bootstrap/extra/setup-llvm.bash +++ b/docker/crupest-debian-dev/bootstrap/extra/setup-llvm.bash @@ -3,10 +3,20 @@ set -e LLVM_VERSION=18 -wget https://apt.llvm.org/llvm.sh + +. /bootstrap/func.bash + +if is_true "$CRUPEST_DEBIAN_DEV_IN_CHINA"; then + base_url=https://mirrors.tuna.tsinghua.edu.cn/llvm-apt +else + base_url=https://apt.llvm.org +fi + +wget "$base_url/llvm.sh" chmod +x llvm.sh -./llvm.sh $LLVM_VERSION all +./llvm.sh $LLVM_VERSION all -m "$base_url" rm llvm.sh + update-alternatives --install /usr/bin/clang clang /usr/bin/clang-$LLVM_VERSION 100 \ --slave /usr/bin/clang++ clang++ /usr/bin/clang++-$LLVM_VERSION \ --slave /usr/bin/clangd clangd /usr/bin/clangd-$LLVM_VERSION \ diff --git a/docker/crupest-debian-dev/bootstrap/get-debian-version.bash b/docker/crupest-debian-dev/bootstrap/get-debian-version.bash index 9cd468a..2cc10b9 100755 --- a/docker/crupest-debian-dev/bootstrap/get-debian-version.bash +++ b/docker/crupest-debian-dev/bootstrap/get-debian-version.bash @@ -1,5 +1,7 @@ #! /usr/bin/env bash +set -e + if [ -f /etc/os-release ]; then . /etc/os-release if [ "$ID" = "debian" ]; then diff --git a/docker/crupest-debian-dev/bootstrap/setup-base.bash b/docker/crupest-debian-dev/bootstrap/setup-base.bash index 6a715c7..ce3372f 100755 --- a/docker/crupest-debian-dev/bootstrap/setup-base.bash +++ b/docker/crupest-debian-dev/bootstrap/setup-base.bash @@ -8,7 +8,7 @@ echo "Setting up basic system function..." echo "Installing basic packages..." apt-get install -y apt-utils -apt-get install -y locales procps vim less man bash-completion rsync curl wget +apt-get install -y locales procps vim less man bash-completion software-properties-common rsync curl wget echo "Installing basic packages done." echo "Setting up locale..." diff --git a/docker/crupest-debian-dev/bootstrap/setup-dev.bash b/docker/crupest-debian-dev/bootstrap/setup-dev.bash index 9e2c6de..1335afc 100755 --- a/docker/crupest-debian-dev/bootstrap/setup-dev.bash +++ b/docker/crupest-debian-dev/bootstrap/setup-dev.bash @@ -7,8 +7,8 @@ set -e echo "Setting up dev function..." echo "Installing dev packages..." -apt-get install -y build-essential git devscripts debhelper quilt \ - cpio kmod bc python3 bison flex libelf-dev libssl-dev libncurses-dev dwarves +apt-get install -y build-essential git devscripts debhelper quilt +apt-get build-dep -y linux echo "Installing dev packages done." append-bash-profile dquilt.bash -- cgit v1.2.3