使用阿里云完整部署项目

一、购买阿里云

参考:http://note.youdao.com/s/2L593s9G

二、设置云服务部署环境

1、用powershell远程连接:ssh root@ip地址公用的

在日常部署中,进去后一定要创建一个新用户

2、下载Java的docker
进入https://injdk.cn/,选择,然后复制链接,进入Linux进行下载
wget https://d2.injdk.cn/oracle/8/jdk-8u251-linux-x64.tar.gz

3、安装docker
参考官网:https://docs.docker.com/engine/install/ubuntu/

1. apt-get remove docker docker-engine docker.io containerd runc

2. apt-get update

3. apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common

4. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

5. apt-key fingerprint 0EBFCD88

6. add-apt-repository \  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"

7. apt-get update

8. apt-get install docker-ce docker-ce-cli containerd.io

使用docker version 查看docker是否安装成功

4、解压缩下载好的Java:tar xf jdk-8u251-linux-x64.tar.gz
设置Java_Home:export JAVA_HOME=/root/jdk1.8.0_251/

配置Java环境变量

  • vi ~/.bash_profile
export PATH=$PATH:/root/jdk1.8.0_251/bin
  • source ~/.bash_profile
    查看成功即可
  • java -version

三、拷贝代码下来

  1. 测试打包后端代码:
    ./mvnw package-DskipTests
  2. 编译前端代码
    进入前端代码目录
  • 安装yarn,参考:https://linuxize.com/post/how-to-install-yarn-on-ubuntu-18-04/
1. curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
2. echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
3. apt update
4. apt install yarn
查看版本
5. yarn --version
  • 安装node,参考:https://askubuntu.com/questions/426750/how-can-i-update-my-nodejs-to-the-latest-version
1. curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
2. apt-get install -y nodejs
3. node -v
  • 安装npm,npm install
  • 安装:npm install node-sass
  • 编译:yarn build
    完成即可

3、安装redis zookeeper,mysql等工具

  • redis:
- docker pull redis
- docker run -d -p 6379:6379 redis
  • zookeeper
- docker pull zookeeper
- docker run -p 2181:2181 -d zookeeper
  • mysql
- docker pull mysql
- mkdir wxshop-data
- docker run -d -v `pwd`/wxshop-data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=wxshop --name=wxshop-mysql mysql
  • nginx
- docker pull nginx

4、初始化数据库数据
创建order数据库:

docker exec -it wxshop-mysql mysql -uroot -proot -e 'create database if not exists `order`'

./mvnw install -DskipTests
./mvnw flyway:migrate -pl wxshop-main
./mvnw flyway:migrate -pl wxshop-order

四、启动项目

1、使用jar方式启动项目(启动服务提供端)
如果没有配置环境变量,可以使用绝对路径Java(/root/jdk1.8.0_251/bin/java),并且使用指定端口(8082)启动

/root/jdk1.8.0_251/bin/java -Dserver.port=8082 -jar wxshop-order/target/wxshop-order-0.0.1-SNAPSHOT.jar

2、启动第二个程序(主程序)
默认端口8080

java -jar wxshop-main/target/wxshop-main-0.0.1-SNAPSHOT.jar

五、分布式部署

1、配置nginx

  • 创建一个/nginx-config/nginx.conf
events { }
http {
    upstream app{
        server 172.16.10.213:8080;
        server 172.16.10.213:8081;
    }

    server {
        listen 80;

        location /api {
            proxy_pass http://app;
        }

        location / {
            root   /static;
            autoindex on;
        }
    }
}
  • 配置一个静态资源
    创建一个 vi start_nginx.sh
docker run -d -p 5000:80 -v /root/westore-react-1/build:/static  -v /root/nginx-conf/nginx.conf:/etc/nginx/nginx.conf nginx

2、启动nginx
给权限1、chmod +x start_nginx.sh
启动:2、./start_nginx.sh

3、启动容器
修改Dockerfile文件

FROM openjdk:8u252-jdk

RUN mkdir /app

WORKDIR /app

COPY wxshop-main/target/wxshop-main-0.0.1-SNAPSHOT.jar /app

EXPOSE 8080

CMD [ "java", "-jar", "wxshop-main-0.0.1-SNAPSHOT.jar" ]

启动build wxsho-main的docker容器
docker build . -t wxshop-main
运行容器
docker run wxshop-main

3、更换容器内部的配置文件(yml中的)

  • 创建一个目录:mkdir wxshop-docker
  • 把配置粘贴进去,并且把localhost改为宿主机的IP(Linux容器的IP)
  • 然后把配置传递进去,并且指定端口
docker run -it -v `pwd`/application.yml:/app/application.yml -p 8081:8080 wxshop-main

成功后可以把-it改为-d,使用-it可以看到详细信息
这样分布式部署就完成了

六、安装tmux

由于终端启动后,不能退出窗口,所以我们可以安装tmuxapt install tmux

  1. 键入 tmux 进入tmux分窗口
  2. 暂时退出当前tmux窗口,键入:按下Ctrl+b d或者输入tmux detach命令
  3. 进入当前缓存窗口:tmux attach
    参考:https://www.ruanyifeng.com/blog/2019/10/tmux.html

七、对于无法外网无法访问阿里云地址

1、打开本地防火墙
2、打开阿里云实例的安全组
参考:https://blog.csdn.net/sd19871122/article/details/89395055

你可能感兴趣的:(使用阿里云完整部署项目)