RuoYi のフロントエンドとバックエンドは分離されており、バックエンドのマルチモジュールは二次開発後に Docker を通じてサーバーにデプロイされます (最新 2022.11.15)

1.環境の準備

1.centos 7
2.docker
3.mysql  8.0.16
4.java   8
5.nginx  latest
6.redis  latest

2. プロジェクト構成ファイルとプロジェクトのパッケージ化の変更

2.1 バックエンドファイルの変更

application.ymlサーバーのHTTPポートを変更します。デフォルトは8080です。必要に応じて変更します。

application-druid.yml はデータベースの mysql と redis の接続設定を変更します

 ​​​​​

 2.2 バックエンドプロジェクトのパッケージ化

RruoYI はマルチモジュールですが、ruoyi-adminモジュールは他のモジュールに依存しているため、管理モジュールの jar パッケージを取得するだけで済みますが、パッケージ化する際にはグローバルにパッケージ化する必要があります。

グローバル パッケージ化用のプロジェクトのルート ディレクトリを見つけます。次に、ruoyi-admin モジュールの下で生成されたターゲット ディレクトリを見つけ、その後のサーバーへの転送を容易にするために、デスクトップに ruoyi-admin.jar を保存します。

 

 2.3 フロントエンドファイルの変更

①vue.config.jsファイルを修正する

 2.4 フロントエンドのパッケージ化

 ① npm run build:prodコマンドを実行して dist フォルダーを生成し、その後のサーバーへの転送を容易にするためにデスクトップに保存します。

2.5. サーバーへのファイル転送

xshell を介してサーバーに接続し、Xftp を介して dist と ruoyi-admin.jar をサーバーに転送します。

 3. サーバー側

1. ソフトウェア: Docker をダウンロードし、nginx、redis、mysql のイメージをプルする

2. ミラーの起動:

mysql:

docker run \
-p 3306:3306 \
--name mysql \
--privileged=true \ //让容器具有root的权限
--restart unless-stopped \ //自动重启
-e MYSQL_ROOT_PASSWORD=****** \ //密码谨慎配置不要123456了,不然黑客会找到你!!!
-d mysql \
--lower_case_table_names=1  //建表时候所有字符转为小写

注: 複雑なパスワードを設定することに加えて、ハッカーによる総当たり攻撃がより困難になるように、MySQL のデフォルトの root ユーザー名を変更することをお勧めします。

 レディス:

docker run \
-p 6379:6379 \
--name redis \
--restart=always \
-v /home/redis/data/:/data \
-d redis:3.2 redis-server \
--appendonly yes  //必须持久化

注: イメージを実行するときは、永続化操作 --appendonly yes を必ず設定してください。その後、redis イメージを実行した後、redis を入力して対応するパスワードを設定するのが最善です。そうしないと、後で大きな問題が発生します (設定することもできます)パスワードに --requirepass 123456 を指定しますが、機能しない場合があります)。

1.进入redis
docker exec -it 容器id /bin/bash

2.运行命令:
redis-cli

3.查看现有的redis密码:
config get requirepass

4.设置redis密码
config set requirepass 密码

5.exit

nginx:

docker run --privileged  -p 80:80 -p 443:443 \
  -d --restart=always \
 --name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
-v /home/nginx/html:/usr/share/nginx/html:rw \
-v /home/nginx/logs:/var/log/nginx -d nginx

注: nginx のマウント ディレクトリを事前に作成する必要があります。そうしないと、nginx を起動するときにすぐにクラッシュします。

次に、nginx.conf 構成ファイルを入力し、次の内容を追加します。

 server {
        listen       80;
        server_name  服务器ip;		# 用服务器ip代替

        location / {
            root   /usr/share/nginx/html/dist/;
            index  index.html index.htm index login;
            try_files $uri $uri/ /index.html last;
        }
        location /prod-api/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://服务器ip:8085/;		# 可以用服务器ip代替
        }
        error_page   500 502 503 504  /50x.html;
            location = /50x.html {
            root   html;
        }
     }

注: 上記の内容を nginx.conf に追加した後、同時に /home/nginx/conf/conf.d フォルダー内のdefault.conf ファイルを変更する必要があります。nginx.conf ではdefault.conf が導入されているため、 conf ファイルの対応するサーバー部分を削除しないと、フロントエンド設定ファイル /usr/share/nginx/html/dist/ が有効になりません。ただし、nginx.conf ファイルを変更せずに、default.conf ファイルのサーバー部分のみを変更することもできます。

3.DockerFileの作成

3.1まず、ruoyi-admin.jar パッケージと dockerFile ファイルを同じディレクトリに配置します

3.2 作成

FROM java:8
EXPOSE 8085

VOLUME /tmp

ENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localhosttime && echo "{TZ}" > /etc/timezone

ADD ruoyi-admin.jar /app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]

次のコマンドを実行してイメージを生成します。

docker build -t ruoyi-vue .

注: 必ず 1 つお見逃しなく。

docker イメージを使用して、redis、mysql、nginx、ruoyi-vue、java の 5 つのイメージが存在するかどうかを確認します

次に、イメージを実行します。

docker run -d -p 8085:8085 --name vue ruoyi-vue 

docker psコマンドで実行イメージを確認すると、Redis、mysql、nginx、および ruoyi-vue がすべて正常に実行されています。

最後に、通常のブラウザから IP: 8085 経由でアクセスできるようになります。

リマインダー: 1. イメージの開始時に起動が成功したことがわかったが、しばらくすると docker ps を使用してイメージが実行されていることが見えなくなる場合は、docker logs コンテナー ID を使用してログを確認し、問題を解決できます。対応するエラーを報告することによって。

2. springBoot プロジェクトの関数がシステム時間に関連している場合は、システム時間をリアルタイムと統一する必要があります。そうしないと、プロジェクトでエラーが報告されます。

3. イメージを開始するときは、 --restart=always を設定するのが最善ですが、同時に、予期しない終了を防ぐために、起動時に docker が自動的に開始するように設定する必要もあります。

4. すべてのタスクが完了したら、指定したポート (80、3306、6379、8085) を開くようにファイアウォールを設定し、ファイアウォールをオンにします。

あなたの人生に幸あれ!

おすすめ

転載: blog.csdn.net/weixin_47450271/article/details/127867272