在Liunx 环境下 学习Spug自动化构建

文章详细介绍了如何在Docker中安装Spug服务,包括创建docker-compose.yml文件,启动容器,初始化用户名和密码,以及开放端口。然后讲解了在Spug中自动化发布前端和Java项目,涉及Node环境、Yarn的安装,以及Java的JDK和Maven配置。在发布Java服务时,还涉及到Maven的阿里云镜像设置和环境变量配置。最后,文章提到了存在的问题,如会话过期和大文件处理。
摘要由CSDN通过智能技术生成
    • 在docker里面安装spug服务

目标就是能够访问spug的网站,此次安装一定要以spug官网为主。

(一)安装docker成功

内容我省略了,就是逼迫自己看官网

(二) 创建docker-compose.yml,并在里面添加如下内容,

vi docker-compose.yml 命令 会让 docker-compose.yml 会生成在root目录下。

接下来就是在该文件添加配置,具体看官网。

需要注意有两点

(1)我去掉版本 version: "3.3"

(2)端口配置,内部端口必须是80,不然无法访问通。如下配置,之后ip:8100就可访问

 ports:
      # 8100为外部端口,80是内部端口,并且内部端口要配置 成80,不然无法访问成功
      -"8100:80"

(三)启动容器docker-compose up -d,如果docker-compose命令无法识别,要单独安装

#1. 运行以下命令以下载Docker Compose的当前稳定版本
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose


#2. 将可执行权限应用于二进制文件:
sudo chmod +x /usr/local/bin/docker-compose


#3. 测试安装
docker-compose --version
参考的文章 https://blog.csdn.net/weixin_43272125/article/details/115444075

(四)初始化 用户名和密码

(五)访问 http://ip:8100端口

注意要将阿里云和宝塔的8100端口开放出来

2. 在spug中自动化发布前端项目

(一)在spug里面安装node环境 、yarn命令

我解释一下为什么要安装环境?

答:spug是个独立的服务器,拥有跟主机服务器一样的文件目录,所以它没有环境要单独安装。

# 进入spug里面
docker exec -it 639fdaf48e24(容器Id号)  /bin/bash

# 安装node (但npm命令无法管用,我找了半天仍然无法解决,单独安装npm)
yum install nodejs

# 单独安装npm( 要用npm 安装yarn)
yum install npm

# 安装yarn(因为要执行yarn build自动化打包命令)
npm install yarn -g

(二)构建配置、发布配置

官方文档:https://spug.cc/blog/example-node

(1)构建配置

#1.包含 dist文件夹
dist
​

#2.创建公共node_modules目录
mkdir -p $SPUG_REPOS_DIR/$SPUG_DEPLOY_ID/node_modules
​
​
#3.创建软链接,指向公共的node_modules,避免每次发布重复安装依赖包
ln -s $SPUG_REPOS_DIR/$SPUG_DEPLOY_ID/node_modules .
# 执行依赖安装
yarn
# 执行 编译
yarn build

(二)发布配置(这里写的不好,思路上可以直接部署到发布目录

#1. 部署路径(我想将全部的前端 打包好的代码放在这里)
/home/webProject/$SPUG_APP_KEY
​
#2. 存储对应版本的路径
/home/webProject/otherPublish
​
#3. 发布前
rm-rf/home/webProject/$SPUG_APP_KEY
rm-rf/home/webProject/8080/*
​
#4. 发布后
mv /home/webProject/$SPUG_APP_KEY/dist/*  /home/webProject/8080/
rm -rf /home/webProject/$SPUG_APP_KEY

3. 在spug发布 Java服务

官方文档:https://spug.cc/blog/example-java

(一)安装jdk8

# 默认安装 java 1.8.0 所有程序    
yum install -y java-1.8.0-openjdk*   

#执行判断是否安装成功
java -version

(二)安装 maven3.6.3

如果之前错误的安装maven,可执行如下删除

yum list installed | grep maven (显示maven安装)
yum -y remove apache-maven.noarch (删除对应maven)

直接使用yum 安装不行,因为那只能安装maven 3.0版本,版本太低,到时候执行mvn clean package命令会报错。所以只能手动安装。

# 1.下载
wget https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

# 2.解压
tar -zxvf apache-maven-3.6.3.tar.gz

<!--3. 编辑conf目录下的 settings.xml配置文件,第一设置阿里镜像-->
<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>


<!-- 4.添加JDK版本 -->  
<profile>
    <id>jdk1.8</id>
    <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
    </activation>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
</profile>

配置maven环境变量

这个最麻烦,你要在docker的安装目录下去找。

#查看docker安装目录
docker info | grep "Docker Root Dir"
=》Docker Root Dir: /var/lib/docker

大概目录就是/var/lib/docker/overlay2 下面,某个文件夹下的 /merged 下,需要通过搜索才能确定,确定后,merged目录下跟服务器的基础文件夹是一样的,我们还是在/etc/profile 添加maven环境变量。

//在文件末尾添加如下
export MAVEN_HOME=/usr/share/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin

配置完成后,重启试一下docker(docker-compose up -d),之后用 mvn -v测试 maven安装成功

(三)配置

文件过滤规则: test.jar

代码检出后执行

# 执行maven编译
mvn clean package -Dmaven.test.skip=true
#将target下的jar包复制到上一级目录,好让文件过滤规则选中
cp target/test.jar .

应用发布前执行

# 停止服务
PID=$(ps -ef | grep test(jar包名) | grep -v grep | awk '{print $2}')
if [ ! -z $PID ]; then
   kill -9 $PID
fi

应用发布后执行

#启动该服务
nohup java -jar test.jar &

4.存在问题

spug 会话过期 请重新登陆

产生该问题是 安全策略的原因,建议尽量配置成内网。

=》https://github.com/openspug/spug/issues/190

在linux上如何使用命令行打包HBuilderX写的uniapp H5代码

https://ask.dcloud.net.cn/question/69685 (官网上上还是不行)

https://blog.51cto.com/u_15127609/3980111 (这个需要很麻烦得打包操作,不知道能否可行)

/data/spug/repos/build 下面每次运行java打包都会产生50M的压缩文件

答:如何自动处理掉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tengyuxin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值