uniapp小程序开发部署笔记(包括前后台)

245 阅读3分钟

前台

开发踩坑记录:

问题1 开发版能正常登录,而体验版登录异常。

问题根因:开发版勾选了

image.png 而体验版默认校验了。(这里的校验其实是校验访问的后台域名否存在,备案过,而调用的本地后台,校验失败)。因此调用后台服务失败。

解决:两种方式: 一种是:绕过校验。右上角三个点,打开开发调试模式

image.png

第二种,解决域名不合法。推荐这种,因为小程序上线,无法绕过校验

  1. 在云服务厂商注册一个域名并进行备案。
  2. 登录小程序后台,开发 -> 开发管理 -> 开发设置 ->服务器域名。在以下几项,配置后台服务地址(必须为https,注意写上域名和端口)
  • request 合法域名
  • uploadFile 合法域名
  • downloadFile 合法域名

image.png 微信小程序官方文档-服务器域名配置

后台

技术栈:java21+springboot+mysql

部署: 后端环境部署——docker部署

  1. dockerFile 配置:
# 基础镜像 注意jdk21 需要找镜像仓库
FROM docker.1ms.run/openjdk:21
# 作者  dxy修改为自己的名称
MAINTAINER dxy
# 工作目录 后台包存放位置
WORKDIR /usr/local/java
# 同步docker内部的时间
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 设置时区
ENV TZ=Asia/Shanghai
# 设置java应用的端口 9898(可修改为其他)
EXPOSE 9898
# 复制jar包到/user/local/java下
ARG JAR_FILE
# project-name 为jar包的名称(可在pom.xml ->build-> finalName修改)
ADD ${JAR_FILE} ./project-name.jar

# 指定配置文件用online的 -Dspring.profiles.active=online;
# 单独把配置文件放出来,便于修改,避免重新打包- Dspring.config.location=/usr/local/java/application.yml,/usr/local/java/application-online.yml 
# /usr/local/java/project-name.jar jar包位置
# /usr/local/java/project-name.log 输出的日志
ENTRYPOINT ["nohup","java","-Dspring.profiles.active=online","-Dspring.config.location=/usr/local/java/application.yml,/usr/local/java/application-online.yml","-jar","/usr/local/java/project-name.jar",">","/usr/local/java/project-name.log","&>","&"]

2.部署文件示意图

注意java应用的配置先修改:

  • 先在mysql 中创建一个数据库,用于java应用连接。
  • 修改apllycation-online.yml中mysql的配置:修改ip为mysql(docker的配置,java可通过名称访问mysql),修改为刚创建的数据库名称(如果与本地不一致),修改账密(如果与本地不一致)。 image.png
  • 最后再打为jar包。

上传最新的apllycation-online.yml,以及jar包。

上传目录:user/local/java image.png

3.构建镜像

  • 首先创建网络,这样在统一网络下的镜像可以互相通过名称访问(类似域名和ip的关系)
// network-name 为网络名称;
docker network create network-name
  • 构建mysql应用

注意添加--network 指定网络。 本地没有镜像,会自动从镜像仓库拉取

// 运行mysql容器
// MYSQL_ROOT_PASSWORD 指定password
docker run -d --name mysql -v mysqldata:/var/lib/mysql -v mysqlconf:/etc/mysql/conf.d -v mysqllog:/var/log/mysql -p 3306:3306 --network network-name -e MYSQL_ROOT_PASSWORD=password mysql:8
// 查看运行的容器
docker ps
  • 构建并运行java应用:
// 1.构建java应用
// 1.0.0 为版本号; . 是表示当前的dockerFile文件的位置
docker build -t project-name:1.0.0 .
//查看构建的镜像
docker images 

// 2.运行java应用
// network 指定网络;-v指定数据卷;9898为端口号(宿主机端口:容器端口);
docker run -d -it --name project-name --network network-name -v /usr/local/java:/usr/local/java -p 9898:9898 project-name:1.0.0
// 查看运行的容器
docker ps

运行后可以通过如下命令,查看日志

cat nohup.out