- 在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的压缩文件
答:如何自动处理掉