From 1c1eb294221fcaae148cca9dd1c811c509380e9f Mon Sep 17 00:00:00 2001 From: zhangsz Date: Mon, 10 Mar 2025 10:16:38 +0800 Subject: [PATCH] feat: add ubuntu 12.04 docker build env --- bin/build.sh | 20 ++++-- ubuntu-12.04-build-env/Dockerfile | 88 +++++++++++++++++++++++ ubuntu-12.04-build-env/docker-compose.yml | 15 ++++ 3 files changed, 119 insertions(+), 4 deletions(-) create mode 100644 ubuntu-12.04-build-env/Dockerfile create mode 100644 ubuntu-12.04-build-env/docker-compose.yml diff --git a/bin/build.sh b/bin/build.sh index 9f644a1..8ceefc3 100755 --- a/bin/build.sh +++ b/bin/build.sh @@ -142,13 +142,25 @@ esac make_ocs_bin() { - cd $src_ocs_dir - echo -n "make clean ... " - make clean 1>/dev/null 2>&1 - echo "done" if [ -z $bin_tag ]; then bin_tag="pncc" fi + cd $src_ocs_dir + if [ $bin_tag = "cook" ]; then + if [ $rel_os = "ub22" ]; then + echo "Ubuntu 22.04 is not supported" + exit 1 + fi + git checkout cook + git pull + else + git checkout main + git pull + fi + + echo -n "make clean ... " + make clean 1>/dev/null 2>&1 + echo "done" echo -n "make $bin_tag $pkg_type ... " make ${bin_tag} 1>make.log 2>&1 if [ $? -ne 0 ]; then diff --git a/ubuntu-12.04-build-env/Dockerfile b/ubuntu-12.04-build-env/Dockerfile new file mode 100644 index 0000000..532310e --- /dev/null +++ b/ubuntu-12.04-build-env/Dockerfile @@ -0,0 +1,88 @@ +# 使用 Ubuntu 12.04 作为基础镜像 +FROM ubuntu:12.04 + +# 设置环境变量以避免交互式安装 +ENV DEBIAN_FRONTEND=noninteractive + +# 更新包列表并安装必要的软件包 +RUN sed -i 's|http://archive.ubuntu.com/ubuntu|http://old-releases.ubuntu.com/ubuntu|g' /etc/apt/sources.list && \ + apt-get update && \ + apt-get install -y \ + openssh-client \ + bzip2 \ + build-essential \ + cmake \ + curl \ + g++ \ + gcc \ + git \ + gzip \ + libgcrypt11-dev \ + libglib2.0-dev \ + libgnutls-dev \ + libhiredis-dev \ + libidn11-dev \ + libssl-dev \ + libsctp-dev \ + libmysqlclient-dev \ + make \ + sed \ + sudo \ + tar \ + unzip \ + vim \ + wget \ + xz-utils \ + zlib1g-dev \ + autoconf \ + automake \ + libtool \ + #binutils \ + #libzstd-dev \ + libidn2-0-dev && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +# 下载并编译 zstd 库 +RUN wget https://github.com/facebook/zstd/archive/refs/tags/v1.4.9.tar.gz && \ + tar -xzf v1.4.9.tar.gz && \ + cd zstd-1.4.9 && \ + make && \ + make install && \ + cd .. && \ + rm -rf zstd-1.4.9 v1.4.9.tar.gz + +# 下载并编译 binutils 库 +RUN wget https://ftp.gnu.org/gnu/binutils/binutils-2.36.1.tar.gz && \ + tar -xzf binutils-2.36.1.tar.gz && \ + cd binutils-2.36.1 && \ + ./configure && \ + make && \ + make install && \ + cd .. && \ + rm -rf binutils-2.36.1 binutils-2.36.1.tar.gz + +# 创建一个用户并设置密码 +RUN useradd -ms /bin/bash simon && echo "simon:admin123" | chpasswd && adduser simon sudo + +# 生成 SSH 密钥对 +RUN mkdir -p /home/simon/.ssh && \ + ssh-keygen -t ecdsa -b 521 -f /home/simon/.ssh/id_ecdsa -N "" -C "simon@ubuntu12.dev" && \ + ssh-keyscan -t ecdsa -H 192.168.2.166 >> /home/simon/.ssh/known_hosts && \ + chown -R simon:simon /home/simon/.ssh + +# 打印公钥,方便添加到 Gitea 服务器 +RUN cat /home/simon/.ssh/id_ecdsa.pub + +# 切换到新用户 +USER simon +WORKDIR /home/simon + +# 复制项目文件到容器中(如果有) +#COPY ../ocs.git /home/simon/ + +# 设置工作目录 +WORKDIR /home/simon + +# 默认命令 +CMD ["/bin/bash"] diff --git a/ubuntu-12.04-build-env/docker-compose.yml b/ubuntu-12.04-build-env/docker-compose.yml new file mode 100644 index 0000000..e9f8e06 --- /dev/null +++ b/ubuntu-12.04-build-env/docker-compose.yml @@ -0,0 +1,15 @@ +services: + ubuntu12-dev: + image: ubuntu:12.04 + build: + context: . + #dockerfile: Dockerfile + container_name: ubuntu12-dev + volumes: + - /home/simon/ocs.git:/home/simon/ocs.git + #- /home/simon/.ssh:/home/simon/.ssh + environment: + - TZ=Asia/Shanghai + tty: true + stdin_open: true + command: tail -f /dev/null