From 8fe3578e17757a50f8285a2759c6b149fe85a0b0 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 13 Aug 2024 22:45:45 +0800 Subject: feat(docker/debian-dev): remove code-server and merge it to debian-dev. --- docker/debian-dev/Dockerfile | 10 +++++---- .../bash-profile/auto-start-apt-cacher.bash | 2 -- .../bootstrap/bash-profile/code-server.bash | 12 +++++++++++ docker/debian-dev/bootstrap/bash-profile/dev.bash | 1 - docker/debian-dev/bootstrap/extra/setup-cmake.bash | 9 ++++++++ .../debian-dev/bootstrap/extra/setup-dotnet.bash | 10 +++++++++ docker/debian-dev/bootstrap/extra/setup-llvm.bash | 16 ++++++++++++++ docker/debian-dev/bootstrap/home-dot/sbuildrc | 25 ---------------------- .../debian-dev/bootstrap/sbuild/setup-amd64.bash | 7 ------ docker/debian-dev/bootstrap/sbuild/setup.bash | 25 ---------------------- docker/debian-dev/bootstrap/setup-base.bash | 5 +++-- docker/debian-dev/bootstrap/setup-code-server.bash | 14 ++++++++++++ docker/debian-dev/bootstrap/setup-dev.bash | 3 +-- docker/debian-dev/bootstrap/setup.bash | 14 ++++++------ 14 files changed, 78 insertions(+), 75 deletions(-) delete mode 100644 docker/debian-dev/bootstrap/bash-profile/auto-start-apt-cacher.bash create mode 100644 docker/debian-dev/bootstrap/bash-profile/code-server.bash delete mode 100644 docker/debian-dev/bootstrap/bash-profile/dev.bash create mode 100755 docker/debian-dev/bootstrap/extra/setup-cmake.bash create mode 100755 docker/debian-dev/bootstrap/extra/setup-dotnet.bash create mode 100755 docker/debian-dev/bootstrap/extra/setup-llvm.bash delete mode 100644 docker/debian-dev/bootstrap/home-dot/sbuildrc delete mode 100755 docker/debian-dev/bootstrap/sbuild/setup-amd64.bash delete mode 100755 docker/debian-dev/bootstrap/sbuild/setup.bash create mode 100755 docker/debian-dev/bootstrap/setup-code-server.bash (limited to 'docker/debian-dev') diff --git a/docker/debian-dev/Dockerfile b/docker/debian-dev/Dockerfile index ce0b10c..dd81997 100644 --- a/docker/debian-dev/Dockerfile +++ b/docker/debian-dev/Dockerfile @@ -1,18 +1,20 @@ -FROM debian:11 +FROM debian:latest ARG USERNAME= ARG IN_CHINA= -ARG SETUP_SBUILD= +ARG SETUP_CODE_SERVER=true ENV USERNAME=${USERNAME} ENV IN_CHINA=${IN_CHINA} -ENV SETUP_SBUILD=${SETUP_SBUILD} +ENV SETUP_CODE_SERVER=${SETUP_CODE_SERVER} ADD bootstrap /bootstrap +ENV LANG=en_US.utf8 RUN /bootstrap/setup.bash USER ${USERNAME} -VOLUME [ "/source", "/data", "/share" ] +EXPOSE 8080 +VOLUME [ "/data" ] CMD [ "bash", "-l" ] diff --git a/docker/debian-dev/bootstrap/bash-profile/auto-start-apt-cacher.bash b/docker/debian-dev/bootstrap/bash-profile/auto-start-apt-cacher.bash deleted file mode 100644 index f230cb1..0000000 --- a/docker/debian-dev/bootstrap/bash-profile/auto-start-apt-cacher.bash +++ /dev/null @@ -1,2 +0,0 @@ -echo "Start apt-cacher-ng if it does not start..." -pgrep apt-cacher-ng || apt-cacher-ng diff --git a/docker/debian-dev/bootstrap/bash-profile/code-server.bash b/docker/debian-dev/bootstrap/bash-profile/code-server.bash new file mode 100644 index 0000000..443eb0b --- /dev/null +++ b/docker/debian-dev/bootstrap/bash-profile/code-server.bash @@ -0,0 +1,12 @@ +export CODE_SERVER_CONFIG="/data/code-server-config.yaml" + +CODE_SERVER_PROGRAM=code-server +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" \ + > ~/.local/share/code-server/log 2> ~/.local/share/code-server/error & + fi +fi diff --git a/docker/debian-dev/bootstrap/bash-profile/dev.bash b/docker/debian-dev/bootstrap/bash-profile/dev.bash deleted file mode 100644 index c49dc35..0000000 --- a/docker/debian-dev/bootstrap/bash-profile/dev.bash +++ /dev/null @@ -1 +0,0 @@ -alias cp-no-git="rsync -a --exclude='**/.git'" diff --git a/docker/debian-dev/bootstrap/extra/setup-cmake.bash b/docker/debian-dev/bootstrap/extra/setup-cmake.bash new file mode 100755 index 0000000..76c1ae4 --- /dev/null +++ b/docker/debian-dev/bootstrap/extra/setup-cmake.bash @@ -0,0 +1,9 @@ +#! /usr/bin/env bash + +set -e + +CMAKE_VERSION=$(curl -s https://api.github.com/repos/Kitware/CMake/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/') +wget -O cmake-installer.sh https://github.com/Kitware/CMake/releases/download/v"$CMAKE_VERSION"/cmake-"$CMAKE_VERSION"-linux-x86_64.sh +chmod +x cmake-installer.sh +./cmake-installer.sh --skip-license --prefix=/usr +rm cmake-installer.sh diff --git a/docker/debian-dev/bootstrap/extra/setup-dotnet.bash b/docker/debian-dev/bootstrap/extra/setup-dotnet.bash new file mode 100755 index 0000000..0ef7743 --- /dev/null +++ b/docker/debian-dev/bootstrap/extra/setup-dotnet.bash @@ -0,0 +1,10 @@ +#! /usr/bin/env bash + +set -e + +wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb +dpkg -i packages-microsoft-prod.deb +rm packages-microsoft-prod.deb + +apt-get update +apt-get install -y dotnet-sdk-7.0 diff --git a/docker/debian-dev/bootstrap/extra/setup-llvm.bash b/docker/debian-dev/bootstrap/extra/setup-llvm.bash new file mode 100755 index 0000000..5a55902 --- /dev/null +++ b/docker/debian-dev/bootstrap/extra/setup-llvm.bash @@ -0,0 +1,16 @@ +#! /usr/bin/env bash + +set -e + +LLVM_VERSION=18 +wget https://apt.llvm.org/llvm.sh +chmod +x llvm.sh +./llvm.sh $LLVM_VERSION all +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 \ + --slave /usr/bin/clang-format clang-format /usr/bin/clang-format-$LLVM_VERSION \ + --slave /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-$LLVM_VERSION \ + --slave /usr/bin/lldb lldb /usr/bin/lldb-$LLVM_VERSION \ + --slave /usr/bin/lld lld /usr/bin/lld-$LLVM_VERSION diff --git a/docker/debian-dev/bootstrap/home-dot/sbuildrc b/docker/debian-dev/bootstrap/home-dot/sbuildrc deleted file mode 100644 index b04ff83..0000000 --- a/docker/debian-dev/bootstrap/home-dot/sbuildrc +++ /dev/null @@ -1,25 +0,0 @@ -############################################################################## -# PACKAGE BUILD RELATED (additionally produce _source.changes) -############################################################################## -$distribution = 'bullseye'; - -$build_source = 0; - -#$source_only_changes = 1; -#$verbose = 1; -#$ENV{'DEB_BUILD_OPTIONS'} = 'parallel=5'; -############################################################################## -# POST-BUILD RELATED (turn off functionality by setting variables to 0) -############################################################################## -$run_lintian = 0; -# $lintian_opts = ['-i', '-I']; -$run_piuparts = 0; -# $piuparts_opts = ['--schroot', '%r-%a-sbuild', '--no-eatmydata']; -$run_autopkgtest = 0; -# $autopkgtest_root_args = ''; -# $autopkgtest_opts = [ '--', 'schroot', '%r-%a-sbuild' ]; - -############################################################################## -# PERL MAGIC -############################################################################## -1; diff --git a/docker/debian-dev/bootstrap/sbuild/setup-amd64.bash b/docker/debian-dev/bootstrap/sbuild/setup-amd64.bash deleted file mode 100755 index 2c05e40..0000000 --- a/docker/debian-dev/bootstrap/sbuild/setup-amd64.bash +++ /dev/null @@ -1,7 +0,0 @@ -#! /usr/bin/env bash - -set -e - -SBUILD_ARCH="amd64" - -sbuild-createchroot --include=eatmydata --command-prefix=eatmydata --arch=${SBUILD_ARCH} ${SBUILD_DIST} /srv/chroot/${SBUILD_DIST}-${SBUILD_ARCH}-sbuild "${SBUILD_MIRROR}" diff --git a/docker/debian-dev/bootstrap/sbuild/setup.bash b/docker/debian-dev/bootstrap/sbuild/setup.bash deleted file mode 100755 index 5180db6..0000000 --- a/docker/debian-dev/bootstrap/sbuild/setup.bash +++ /dev/null @@ -1,25 +0,0 @@ -#! /usr/bin/env bash - -set -e - -dir=$(dirname $0) - -. /bootstrap/func.bash - -apt-get install -y sbuild schroot debootstrap - -copy-home-dot-file sbuildrc - -# setup apt-cacher-ng -apt-get install -y apt-cacher-ng -append-bash-profile auto-start-apt-cacher.bash -apt-cacher-ng -export SBUILD_MIRROR="http://127.0.0.1:3142/$(/bootstrap/apt-source/get-domain.bash)/debian" - -export SBUILD_DIST="bullseye" - -"$dir/setup-amd64.bash" - -if [[ "$BUILD_FOR_ARCH" == "arm64" ]]; then - "$dir/setup-arm64.bash" -fi diff --git a/docker/debian-dev/bootstrap/setup-base.bash b/docker/debian-dev/bootstrap/setup-base.bash index dda9e42..68ebb55 100755 --- a/docker/debian-dev/bootstrap/setup-base.bash +++ b/docker/debian-dev/bootstrap/setup-base.bash @@ -4,7 +4,8 @@ set -e . /bootstrap/func.bash -apt-get update -apt-get install -y vim less man curl bash-completion rsync +apt-get install -y locales vim less man bash-completion rsync curl wget + +localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 append-bash-profile bash-completion.bash diff --git a/docker/debian-dev/bootstrap/setup-code-server.bash b/docker/debian-dev/bootstrap/setup-code-server.bash new file mode 100755 index 0000000..cb9a407 --- /dev/null +++ b/docker/debian-dev/bootstrap/setup-code-server.bash @@ -0,0 +1,14 @@ +#! /usr/bin/env bash + +set -e + +. /bootstrap/func.bash + +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" + +curl -sSfOL "$url" +apt install "./code-server_${VERSION}_amd64.deb" +rm "code-server_${VERSION}_amd64.deb" + +append-bash-profile code-server.bash diff --git a/docker/debian-dev/bootstrap/setup-dev.bash b/docker/debian-dev/bootstrap/setup-dev.bash index 2e69da7..a2f2f52 100755 --- a/docker/debian-dev/bootstrap/setup-dev.bash +++ b/docker/debian-dev/bootstrap/setup-dev.bash @@ -5,9 +5,8 @@ set -e . /bootstrap/func.bash apt-get install -y build-essential git devscripts debhelper quilt \ - cpio kmod bc python bison flex rsync libelf-dev libssl-dev libncurses-dev dwarves + cpio kmod bc python bison flex libelf-dev libssl-dev libncurses-dev dwarves -append-bash-profile dev.bash append-bash-profile dquilt.bash copy-home-dot-file devscripts copy-home-dot-file quiltrc-dpkg diff --git a/docker/debian-dev/bootstrap/setup.bash b/docker/debian-dev/bootstrap/setup.bash index c72db87..f00c60b 100755 --- a/docker/debian-dev/bootstrap/setup.bash +++ b/docker/debian-dev/bootstrap/setup.bash @@ -5,16 +5,16 @@ set -e export DEBIAN_FRONTEND=noninteractive /bootstrap/apt-source/setup.bash + +apt-get update + /bootstrap/setup-user.bash /bootstrap/setup-base.bash /bootstrap/setup-dev.bash -. /bootstrap/func.bash - -if is_true "$SETUP_SBUILD"; then - echo "Setup sbuild..." - /bootstrap/sbuild/setup.bash -else - echo "Sbuild is disabled. Skipped." +if is_true "$SETUP_CODE_SERVER"; then + /bootstrap/setup-code-server.bash fi + +rm -rf /var/lib/apt/lists/* -- cgit v1.2.3