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) を開くようにファイアウォールを設定し、ファイアウォールをオンにします。!!
あなたの人生に幸あれ!!!