diff --git a/dockerfile/qemu_test_dockerfile b/dockerfile/qemu_test_dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..8c3be02f60c0b7382a21f639da0b764bee703e36 --- /dev/null +++ b/dockerfile/qemu_test_dockerfile @@ -0,0 +1,128 @@ +FROM openeuler/openeuler:22.03-lts + +# MAINTAINER +MAINTAINER harvey + +# yum install +RUN set -eux; \ + yum -y install iputils git java tar cmake gperf sqlite-devel \ + libffi-devel xz-devel zlib zlib-devel openssl-devel bzip2-devel \ + ncurses-devel readline-devel libpcap-devel parted autoconf-archive \ + chrpath gcc-c++ patch rpm-build flex autoconf automake m4 bison bc \ + libtool gettext-devel createrepo_c git net-tools wget sudo hostname \ + rpcgen texinfo python meson dosfstools mtools libmpc-devel gmp-devel \ + ninja-build numactl-devel make glib2 glib2-devel java-latest-openjdk.x86_64 \ + expect psmisc bridge-utils + +# gcc install +ARG tools_dir=/usr1/tools +ARG gcc_install_dir=/usr1/openeuler/gcc + +# change dir to workdir and star install +WORKDIR ${tools_dir} +RUN wget https://repo.openeuler.org/openEuler-22.03-LTS/EPOL/main/x86_64/Packages/gcc-cross-1.0-0.oe2203.x86_64.rpm -P ${tools_dir} +RUN rpm2cpio ${tools_dir}/gcc-cross-1.0-0.oe2203.x86_64.rpm | cpio -id + +# change dir to workdir and unpack +WORKDIR ${gcc_install_dir} +RUN tar -xf ${tools_dir}/tmp/openeuler_gcc_arm32le.tar.gz +RUN find ./openeuler_gcc_arm32le -type d | xargs chmod go+x +RUN chmod go+r ./openeuler_gcc_arm32le -R +RUN chmod -R 755 /usr1/openeuler/gcc/openeuler_gcc_arm32le/bin + +RUN tar -xf ${tools_dir}/tmp/openeuler_gcc_arm64le.tar.gz +RUN find ./openeuler_gcc_arm64le -type d | xargs chmod go+x +RUN chmod go+r ./openeuler_gcc_arm64le -R +RUN chmod -R 755 /usr1/openeuler/gcc/openeuler_gcc_arm64le/bin +RUN find ./ | xargs chmod go+x + + +# python install +ARG python_install_dir=/opt/buildtools/python-3.9.2 + +# change dir to workdir and start install +WORKDIR /usr1/tools +RUN wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz +RUN tar -xf Python-3.9.2.tgz +RUN rm -rf /usr/local/bin/python3 /usr/local/bin/python +WORKDIR /usr1/tools/Python-3.9.2 +RUN ./configure --prefix=/opt/buildtools/python-3.9.2 --enable-loadable-sqlite-extensions +RUN make -j 8 && make install +RUN ln -s ${python_install_dir}/bin/python3 /usr/local/bin/python3 +RUN ln -s ${python_install_dir}/bin/python3 /usr/local/bin/python +RUN export PYTHONPATH=${python_install_dir}/lib64/python3.9/lib-dynload/ +RUN export PYTHONPATH="${python_install_dir}/lib/python3.9/site-packages/:${python_install_dir}:${python_install_dir}/lib64/python3.9/lib-dynload/" + +# ninja install +ARG ninja_install_dir="/opt/buildtools/ninja-1.10.1" + +# change dir to workdir and start install +WORKDIR /usr1/tools +RUN wget https://distfiles.macports.org/ninja/ninja-1.10.1.tar.gz +RUN tar -xf ninja-1.10.1.tar.gz +WORKDIR /usr1/tools/ninja-1.10.1 +RUN sed -ie '1c#!/usr/bin/env python3' *.py +RUN ./configure.py --bootstrap +RUN mkdir -p ${ninja_install_dir}/bin +RUN install -m 0755 ./ninja ${ninja_install_dir}/bin + +# change access permission +WORKDIR /opt/buildtools +RUN find ./ -type d | xargs chmod 755 + +# clean install package +WORKDIR /usr1 +RUN rm -rf tools + +# install qemu +RUN wget https://download.qemu.org/qemu-7.0.0.tar.xz +RUN tar xvJf qemu-7.0.0.tar.xz +WORKDIR /usr1/qemu-7.0.0 +RUN yum -y install pixman-devel +RUN ./configure +RUN make +RUN make install + +RUN ln -s /opt/buildtools/python-3.9.2/bin/pip3 /usr/bin/pip +RUN ln -s /opt/buildtools/python-3.9.2/bin/pip3 /usr/bin/pip3 +RUN python -m pip install --upgrade pip + +RUN pip install six paramiko==2.7.2 + +###################################################install jenkins########################################################## + +ARG VERSION=4.3 +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-11 \ +RUN chmod a+rx /usr/local/bin/jenkins-agent \ + && ln -s /usr/local/bin/jenkins-agent /usr/local/bin/jenkins-slave + +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} +ENV AGENT_WORKDIR=${AGENT_WORKDIR} +RUN mkdir /home/${user}/.jenkins && mkdir -p ${AGENT_WORKDIR} + +VOLUME /home/${user}/.jenkins +VOLUME ${AGENT_WORKDIR} +WORKDIR ${AGENT_WORKDIR} + +RUN sudo sed -i 's/TMOUT=300/TMOUT=/g' /etc/bashrc + +ENTRYPOINT ["jenkins-agent"]