【shop-部署】Redis ZooKeeper Docker nginx
配置Java环境
- 下载jdk
wget https://d6.injdk.cn/oraclejdk/8/jdk-8u341-linux-x64.tar.gz
tar xf jdk-8u341-linux-x64.tar.gz
将其解压。- 设置JAVA_HOME
vi ~/.bashrc
添加
export JAVA_HOME=/path/to/jdk1.8.0_341
export PATH=$JAVA_HOME/bin:$PATH
source ~/.bashrc
java -version
测试一下,看能不能运行命令。
/etc/profile 和 ~/.bashrc 都是用来设置环境变量的文件,其中:
- /etc/profile 是系统级别的环境变量配置文件,适用于所有用户,包括登录用户和非登录用户。
- ~/.bashrc 是用户级别的环境变量配置文件,适用于当前用户,只有当该用户登录到系统并启动bash shell时才会被读取。
下载代码打包代码
- 使用
git clone xxx
将后端代码从gitxxx下载下来。 ./mvnw install -DskipTests
,执行 Maven 的 install 生命周期,会将 compile、test、package 等阶段一并执行。适用于多模块情况。
Redis ZooKeeper MySql
docker run -d -p 6379:6379 redis
docker run -p 2181:2181 -d zookeeper
在这里我创建了一个新用户,所以使用usermod -a -G docker username
命令将username用户添加到docker组中,使其可以使用docker命令。docker run -d -v $(pwd)/app-data:/var/lib/mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=app --name=app-mysql mysql
使用命令行和Docker方式启动运行jar包
命令行方式
java -jar -Dserver.port=3004 xxx.jar
,先运行provider,再运行consumer。
Docker方式
- 编写DockerFile
FROM java:openjdk-8u111-alpine
RUN mkdir /app
WORKDIR /app
COPY path/to/xxx.jar /app
EXPOSE 3005
CMD [ "java", "-jar", "-Dserver.port=3005", "xxx.jar" ]
docker build -t imageName .
docker run -d --network=host imageName
--network=host 表示将容器直接绑定到宿主机的网络环境上。这样,在容器中的 Spring Boot 应用就可以使用宿主机的 IP 地址和端口来提供服务,而不需要做端口映射。
nginx
服务器上装了宝塔,所以直接使用面板上的添加站点
,后将网站目录
改为前端文件所在位置。
在网站列表处点击设置,找到配置文件
,
在server
的最上面添加
upstream app {
server 内网ip:3004;
server 内网ip:3005;
}
ip可以通过
ifconfig
命令,其中的eth0
中的inet就是内网ip。
在server
中添加
location /api
{
proxy_pass http://app;
}
会将api开头的请求转发到app
的两个端口上。