栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

记录一次大创项目配置服务器的心得

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

记录一次大创项目配置服务器的心得

这是一篇记录配置服务器环境的文章(针对Python项目)(保姆级教程)

我只能说配置服务器真的是太简单了,有手就行

一:准备好必要文件

文件如下:

  • Dockerfile
  • 项目代码
  • requirements.txt

如图:

你需要先在windows系统下建立好这三个文件,然后迁移到linux服务器上,接着才能运行

下面我将介绍如何建立Dockerfile以及requirements.txt

1.1 requirements.txt创建

我在网上看了很多方法,有的用pip freeze > 命令的,但是不好,我看了几个工具,觉得pipreqs是比较容易且不错的。

  • 安装pipreqs

可以直接通过pip来安装pipreqs,安装命令如下:

pip install pipreqs		
  • 使用pipreqs

命令如下:

pipreqs ./ --encoding=utf-8
注意需要进入到项目中运行

然后就创建好了requirements.txt

1.2 Dockerfile创建

先看一下大致内容

FROM python:3.8
# 添加当前文件到code目录下
ADD . /code
# 切换目录
WORKDIR /code
# 安装依赖
RUN pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
# 切换到项目目录
WORKDIR /code/feature_extract
# 项目运行命令
CMD ["bash", "run.sh"]

创建过程如下:

  • 在Windows右键创建Dockerfile,不需要后缀名
  • 编写Dockerfile,完毕

咳咳,其实就这么简单,不过需要说一下Dockerfile里面的内容。

  • FROM python3.8 Dockerfile中的一个非常重要的命令,作用是指定一个基础镜像来进行构建流程。这里我们选择Python3.8即可,根据自己项目来
  • ADD . /code 这是说把当前你所在路径下的所有文件添加到docker容器中的code目录下
  • WORKDIR /code 这是切换容器的目录,因为需要在code目录下执行环境依赖安装(requirements.txt在该目录下,我们ADD就把我们创建的三个文件放过来了)
  • RUN pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ 安装依赖不说了
  • WORKDIR /code/feature_extract 这里是切换到我们的代码文件目录下,因为需要运行我们的run.sh脚本文件来启动我们的Python项目
  • CMD ["bash", "run.sh"] 执行脚本文件,因为我们的python项目需要跑多个.py文件,所以统一写到一个.sh脚本中。

run.sh内容根据自己项目逻辑写即可,本次项目对应的如下,详情请看我的Readme.md文档

nohup python3.8 generate_static_feature_csv.py --screen-data 1
wait
nohup python3.8 1disasseble.py
wait
nohup python3.8 2bytecode_extract.py
wait
nohup python3.8 3top500_n_gram_test.py
wait
nohup python3.8 top_intent_test.py
wait
nohup python3.8 4ngram_vec_test.py
wait
nohup python3.8 generate_static_feature_csv.py --screen-data 0
wait
nohup python3.8 merge_csv.py
wait
cat ./nohup.out

# just keep this script running
while [[ true ]]; do
    sleep 1
done

wait:等待上一个命令运行结束才开始,而并非并行运行py文件。

最后一个无限循环的作用:使容器一直运行,不停下,以便后续操作。

二:创建Docker容器

首先将文件移到linux服务器下的某个地方

  • 构建镜像,命令如下

docker build -t . name是自己创建的镜像名字,具体的输出过程就不附上来了

  • 可以使用docker images查看自己所创建的镜像
  • 启动容器,命令如下

docker run -it --name Repname –name是指定一个容器名字,不然每次docker run都会创建一个新的容器,不好。 Repname是你的镜像名字,也就是前面创建的name。

  • 使用docker ps -a可以发现我们刚才启动的容器已经Exited了,所以我们需要重新启动它,命令如下:

docker start ContainerName ContainerName是上一个命令创建的容器名字

  • 启动后,该容器便会一直运行,docker ps 可以看到。
  • 这样其实Docker容器便建立完成了,然后针对我们的项目需要添加一些东西。
三:向docker容器中添加我们的ApkTool、ApkTool.jar

这次我们需要到容器内部进行操作,命令如下:

docker exec -it ContainerName /bin/bash

进入后,ls查看文件如下:

[fangzy-stu@70 feature_extract]$ docker exec -it droidfeature /bin/bash
root@dd0a2477c0fe:/code/feature_extract# ls
1disasseble.py        3top500_n_gram_test.py  README.md    apktool      dataset 
infrastructure        nohup.out               permission_list2.txt      requirements.txt  
top_intent_test.py    2bytecode_extract.py    4ngram_vec_test.py        __pycache__  
apktool.jar           generate_static_feature_csv.py                    merge_csv.py    
permission_list.txt   permission_list3.txt    run.sh                    utils.py

可以看到我们现在已经在/code/feature_extract目录下了,跟Dockerfile中WORKDIR命令对应,可以自行查看docker容器根目录的情况。

3.1 更新apt-get

命令:apt-get update

3.2 安装vim

命令:apt-get install vim

3.3 安装java环境(ApkTool需要)

首先需要找到linux的java安装包,去官网 找,注意需要复制验证过后浏览器弹出下载窗口的链接

wget  
mkdir /usr/local/java
tar -zxvf jdk-8u301-linux-x64.tar.gz -C /usr/local/java	
3.4 设置java环境变量
vim /etc/profile

在末尾添加

export JAVA_HOME=/usr/local/java/jdk1.8.0_301
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

使环境变量生效

source /etc/profile

添加软链接

ln -s /usr/local/java/jdk1.8.0_301/bin/java /usr/bin/java

检查

java -version	
3.5 安装ApkTool (当然也可以自己手动添加已下好的ApkTool,下面是wget来的)

ApkTool官网

wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool -O /usr/local/bin/apktool 

chmod a+x /usr/local/bin/apktool

wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.6.0.jar

mv apktool_2.6.0.jar /usr/local/bin/apktool.jar

检查

apktool	
四:一些其他注意事项

在代码文件中,即.py文件,关于路径的变量:

  1. 将\换为/
  2. 当前路径不使用./,直接写文件即可,例:./dataset/malware ——》 dataset/malware
五:如此完美的教程,应该不会出啥大问题!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/361974.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号