From cbd557d215f8dcef5cd205385d29983c70b32609 Mon Sep 17 00:00:00 2001 From: dongjie110 <17621827400@163.com> Date: Thu, 22 May 2025 09:36:27 +0800 Subject: [PATCH] add ci images dockerfile --- src/dockerfile/ci-attestation | 87 +++++++++++++++++++++++++++++++++++ src/dockerfile/ci-rust | 21 +++++++++ 2 files changed, 108 insertions(+) create mode 100644 src/dockerfile/ci-attestation create mode 100644 src/dockerfile/ci-rust diff --git a/src/dockerfile/ci-attestation b/src/dockerfile/ci-attestation new file mode 100644 index 0000000..b57d2f2 --- /dev/null +++ b/src/dockerfile/ci-attestation @@ -0,0 +1,87 @@ +# replace VERSION before build +FROM rust:1.85-slim +# 设置国内 Rust 镜像源 +ENV RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static +ENV RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup + +RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources \ + && sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources + +# 修正:使用 apt-get 替代 yum +RUN set -eux; \ + apt-get update && \ + apt-get install -y \ + wget \ + tar \ + gzip \ + ca-certificates && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +# Default to UTF-8 file.encoding +ENV LANG C.UTF-8 + +ENV JAVA_HOME /usr/local/openjdk-17 +ENV PATH $JAVA_HOME/bin:$PATH + +# Download and install OpenJDK 17 +RUN set -eux; \ + arch="$(arch)"; \ + case "$arch" in \ + aarch64) JDK_URL="https://mirrors.huaweicloud.com/openjdk/17/openjdk-17_linux-aarch64_bin.tar.gz" ;; \ + x86_64) JDK_URL="https://mirrors.huaweicloud.com/openjdk/17/openjdk-17_linux-x64_bin.tar.gz" ;; \ + *) echo >&2 "error: unsupported architecture: '$arch'"; exit 1 ;; \ + esac; \ + \ + wget -q ${JDK_URL} -O /tmp/jdk.tar.gz && \ + mkdir -p /usr/local && \ + tar -xzf /tmp/jdk.tar.gz -C /usr/local && \ + rm /tmp/jdk.tar.gz + +RUN mv /usr/local/jdk-17 /usr/local/openjdk-17 + +# 验证安装 +RUN javac --version && java --version; +RUN rustc --version && cargo --version; + + +# 设置环境变量(独立的 ENV 指令) +# ENV PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig + +ARG VERSION=3107.v665000b_51092 +ARG user=jenkins +ARG group=jenkins +ARG uid=1000 +ARG gid=1000 +ARG AGENT_WORKDIR=/home/${user}/agent + +RUN curl --create-dirs -fsSLo /usr/share/jenkins/agent.jar https://repo.jenkins-ci.org/public/org/jenkins-ci/main/remoting/${VERSION}/remoting-${VERSION}.jar \ + && chmod 755 /usr/share/jenkins \ + && chmod 644 /usr/share/jenkins/agent.jar \ + && ln -sf /usr/share/jenkins/agent.jar /usr/share/jenkins/slave.jar + +RUN curl --create-dirs -fsSLo /usr/local/bin/jenkins-agent http://121.36.53.23/AdoptOpenJDK/jenkins-agent +#COPY jenkins-agent /usr/local/bin/jenkins-agent + +RUN chmod a+rx /usr/local/openjdk-17 \ + && chmod a+rx /usr/local/bin/jenkins-agent \ + && ln -s /usr/local/bin/jenkins-agent /usr/local/bin/jenkins-slave +RUN whoami +RUN groupadd -g ${gid} ${group} +RUN useradd -c "Jenkins user" -d /home/${user} -u ${uid} -g ${gid} -m ${user} +RUN echo "${user} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers +USER ${user} + +#USER ${user} +ENV AGENT_WORKDIR=${AGENT_WORKDIR} +RUN mkdir /home/${user}/.jenkins && mkdir -p ${AGENT_WORKDIR} + +VOLUME /home/${user}/.jenkins +VOLUME ${AGENT_WORKDIR} +WORKDIR ${AGENT_WORKDIR} + + +ENTRYPOINT ["jenkins-agent"] +# Default command +# CMD ["/bin/bash"] +# CMD ["jshell"] \ No newline at end of file diff --git a/src/dockerfile/ci-rust b/src/dockerfile/ci-rust new file mode 100644 index 0000000..aaac54c --- /dev/null +++ b/src/dockerfile/ci-rust @@ -0,0 +1,21 @@ +# replace VERSION before run +FROM swr.cn-north-4.myhuaweicloud.com/openeuler/{arch}/ci/common:24.03-lts-sp1 +USER root +RUN set -eux; \ + arch="$(uname -m)";\ + echo "[openEuler_iso]" > openEuler.repo_bak;\ + echo -e "name=openEuler_iso" >> openEuler.repo_bak;\ + if [ "$arch" == "x86_64" ]; then echo -e "baseurl=https://mirrors.huaweicloud.com/openeuler/openEuler-24.03-LTS-SP1/everything/x86_64/" >> openEuler.repo_bak;fi;\ + if [ "$arch" == "aarch64" ]; then echo -e "baseurl=https://mirrors.huaweicloud.com/openeuler/openEuler-24.03-LTS-SP1/everything/aarch64/" >> openEuler.repo_bak;fi;\ + echo -e "gpgcheck=0" >> openEuler.repo_bak;\ + echo -e "enable=1" >> openEuler.repo_bak;\ + mv /etc/yum.repos.d/openEuler.repo /etc/yum.repos.d/openEuler.repo.origin.bak;\ + mv openEuler.repo_bak /etc/yum.repos.d/openEuler.repo; + +RUN set -eux; \ + yum install -y alsa-lib-devel cargo* clang clippy* gcc libcurl libgcc libssh2 libstdc++ llvm-libs openssl-libs pixman pixman-devel rust rust-packaging rust-src rust-std-static rustfmt zlib expect glib2* atk* cairo* gtk3-devel cyrus-sasl-devel pulseaudio-libs-devel libseccomp-devel + +RUN set -eux; \ + cargo install typos-cli + +ENV PATH ${HOME}/.cargo/bin:$PATH \ No newline at end of file -- Gitee