# test_env_build **Repository Path**: dianetian/test_env_build ## Basic Information - **Project Name**: test_env_build - **Description**: 基于Docker的一键式搭建测试环境。 适合需相对独立的测试环境的测试人员。 - **Primary Language**: Shell - **License**: Not specified - **Default Branch**: develop - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-12-21 - **Last Updated**: 2020-12-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # test_env_build #### 项目背景 测试环境应与开发环境分开,且测试环境之间也应相互独立,避免干扰致不必要的环境错误。 通过Docker可实现环境相互独立,但前期需包含运行环境的Docker镜像,便于测试人员在此镜像上运行容器,直接完成测试环境的搭建。 #### 项目介绍 测试环境搭建包含Ubuntu16.04 + cuda11.0 + JDK1.8.0_191 + Nginx1.10.3 + MySQL5.7.16 + Python3.7.0 + 其他辅助软件或工具; 实现步骤是从Docker Hub获取NVIDIA基本镜像,在该镜像基础上,构建所需测试环境; 对于测试人员,一旦创建完成基础测试镜像,无需重复创建,直接在此镜像上运行容器,实现秒级搭建测试环境。 #### 软件架构 - common.sh 通用设置 - config.sh 可配置项 - create_container.sh 创建容器脚本 - create_image.sh 创建镜像脚本 - dependency/ 创建镜像所需依赖 - Dockerfile 构建镜像的文本文件 #### 安装教程 1. 安装NVIDIA显卡驱动、Docker和Nvidia-Docker ``` # 清除Ubuntu系统中原有Docker sudo apt-get remove docker docker-engine docker.io # 配置 sudo echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/blacklist-nouveau.conf sudo update-initramfs -u sudo echo -e "GRUB_DEFAULT=0\nGRUB_HIDDEN_TIMEOUT=0\nGRUB_HIDDEN_TIMEOUT_QUIET=true\nGRUB_TIMEOUT=10\nGRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`\nGRUB_CMDLINE_LINUX=\"text\"\nGRUB_TERMINAL=console" > /etc/default/grub sudo update-grub sudo reboot # 安装NVIDIA显卡驱动 sudo ./NVIDIA-Linux-x86_64-450.66.run --no-opengl-files -s --no-x-check -a # 安装Docker和Nvidia-Docker sudo dpkg -i libseccomp2_2.3.1-2.1ubuntu2~16.04.1_amd64.deb sudo dpkg -i docker-ce_18.03.1~ce-0~ubuntu_amd64.deb sudo dpkg -i libnvidia-container1_1.0.0~rc.1-1_amd64.deb sudo dpkg -i libnvidia-container-tools_1.0.0~rc.1-1_amd64.deb sudo dpkg -i nvidia-container-runtime-hook_1.3.0-1_amd64.deb sudo dpkg -i nvidia-container-runtime_2.0.0+docker18.03.1-1_amd64.deb sudo dpkg -i nvidia-docker2_2.0.3+docker18.03.1-1_all.deb ``` 2. clone该项目到本地服务器 ``` git clone https://gitee.com/dianetian/test_env_build.git ``` #### 使用说明 1. 修改config.sh脚本中的待构建镜像名称和待运行容器名称 注:也可在执行构建镜像或运行容器的脚本时动态指定名称 ``` vim config.sh IMAGE_NAME=镜像名称 CONTAINER_NAME=容器名称 ``` 2. 执行create_image.sh脚本,构建镜像 ``` sudo ./create_image.sh ``` 3. 执行create_container.sh脚本,运行容器 ``` sudo ./create_container.sh ``` #### 注意事项 1. dependency目录下有超过100M的文件,不在该项目中 - dependency/x86_64-linux-gnu.tar.gz - dependency/ubuntusoft/qt486.tar.gz - dependency/ubuntusoft/mysql-*-x86_64.tar.gz - dependency/ubuntusoft/jdk-8u191-linux-x64.tar.gz 2. NVIDIA显卡驱动可在官网下载 ``` https://www.nvidia.cn/Download/index.aspx?lang=cn ``` #### 待优化清单 1. 增加运行容器时的端口映射配置项