Java項目docker部署


一:制作中間件鏡像

         1:制作MySQL鏡像

         新建文件夾,自定義文件夾名稱(這里使用db)。在db文件夾中創建Dockerfile文件,和init.sql文件。init.sql文件為初始化腳本文件,這個腳本文件包含nacos配置對於的sql腳本和各個服務對應的數據庫腳本。在每一個服務對應的腳本片段開頭添加創建庫和使用庫語句,例如nacos:  CREATE database nacos;use nacos;

Dockerfile文件內容如下:

#MySQL鏡像

FROM mysql:5.7

#定義MySQL初始化腳本的目錄(固定的)

WORKDIR /docker-entrypoint-initdb.d

#將初始化腳本放入上面的目錄先,這個.代表 /docker-entrypoint-initdb.d

ADD init.sql .

#對外暴露端口

EXPOSE 3366

#通過設置環境變量來設置密碼

ENV MYSQL_ROOT_PASSWORD=root

 

 

2:制作nacos鏡像

新建文件夾nacos,文件夾中包含dockerfile文件和application.properties文件(此文件為nacos所屬文件)。application.properties文件中修改如下

db.num=1

db.url.0=jdbc:mysql://db:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=UTC

db.user=root

db.password=root

上面三行之前就有,現在需要將注釋放開,並將db.url.0對應的值修改為對應的docker中的庫,因為我們之后會吧數據庫容器命名為db,所以我們此處使用db。這樣才可以鏈接上數據庫。

Dockerfile文件如下

#nacos基礎鏡像,在外網拉取即可

FROM nacos/nacos-server:latest

         #將准備好的屬性文件覆蓋

ADD application.properties /home/nacos/conf/application.properties

 

 

 

3:制作redis鏡像

直接外網拉取鏡像即可。

 

 

4:制作vue鏡像

新建vue文件夾,包含dist文件夾,Dockerfile文件,nginx.conf文件。dist文件夾下為前端打包代碼。

nginx.conf文件內容如下:

# cat nginx.conf

worker_processes auto;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    client_max_body_size   20m;

    server {

        listen       801;

        server_name  localhost;

     location / {

        root   /usr/share/nginx/html;

        index  index.html index.htm;

        try_files $uri $uri/ /index.html;

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

    }

}

Dockerfile文件如下:

# 設置基礎鏡像

FROM nginx:latest

# 定義作者

#MAINTAINER oopxiajun <oopxiajun@qq.com>

# 將dist文件中的內容復制到 /usr/share/nginx/html/ 這個目錄下面

COPY dist/  /usr/share/nginx/html/

COPY nginx.conf /etc/nginx/nginx.conf

RUN echo 'echo init ok!!'

 

 

5:制作gateway服務鏡像(所以業務服務一樣,不再贅述)

所有的業務服務在制作鏡像前,需要將bootstrap配置文件中的部分配置修改完。Gateway服務中的配置文件需要將nacos的地址由127.0.0.1:8848改為nacos:8848。這里之所以改為nacos是因為之后啟動nacos中間件服務時我們會將nacos中間件容器命名為nacos。

第一步:在idea編輯器中,點擊右側maven按鈕,然后點擊rms,點擊Lifecycle,點擊package。等待maven打包完成后,到項目對應文件夾下找到jar包(rms-gateway-1.0-SNAPSHOT.jar),然后將jar包和服務對應的Dockerfile文件放在一個文件夾下。

第二步:dockerfile編寫

#從外網拉取的jdk鏡像

FROM openjdk:8u222-jre

#業務服務jar包

ADD rms-gateway-1.0-SNAPSHOT.jar /rms-gateway-1.0-SNAPSHOT.jar

#暴露端口

EXPOSE 8079

#啟動命令

ENTRYPOINT ["java","-jar","/rms-gateway-1.0-SNAPSHOT.jar"]

 

 

鏡像制作到此結束。部署執行開發提供的start.sh腳本即可。下面是啟動腳本講解。

 

啟動腳本講解

start.bat為啟動腳本,腳本內容如下:

cd D:\rmsDocker

start cmd /k "docker load -i rms_mysql.jar&&docker load -i rms_redis.jar&&docker load -i rms_vue.jar&&docker load -i rms_nacos.jar&&docker load -i rms_base.jar&&docker load -i rms_search.jar&&docker load -i rms_report.jar&&docker load -i rms_message.jar&&docker load -i rms_gateway.jar&&docker load -i rms_flow.jar&&docker load -i rms_file.jar&&docker load -i rms_auth.jar&&docker load -i rms_arc.jar&&docker run -p 3366:3306 -d --restart=always --name db rms_mysql:v1 --lower_case_table_names=1&&docker run --env MODE=standalone -p 28848:8848 -d --restart=always --name nacos --link=db rms_nacos:v1&&docker run -p 16379:6379 -d --restart=always --name redis rms_redis:v1&&docker run -p 801:801 -d --restart=always --name vue rms_vue:v1&&docker run -d -p 8079:8079 --name gateway --link=redis --link=nacos rms_gateway:v1&&docker run -d -p 9091:9091 --name arc --link=redis --link=db --link=nacos rms_arc:v1&&docker run -d -p 9092:9092 --name base --link=redis --link=db --link=nacos  rms_base:v1&&docker run -d -p 9093:9093 --name file --link=redis --link=db --link=nacos  rms_file:v1&&docker run -d -p 9094:9094 --name flow --link=redis --link=db --link=nacos rms_flow:v1&&docker run -d -p 9095:9095 --name message --link=redis --link=db --link=nacos rms_message:v1&&docker run -d -p 9096:9096 --name search --link=redis --link=db --link=nacos rms_search:v1&&docker run -d -p 9097:9097 --name report --link=redis --link=db --link=nacos rms_report:v1&&docker run -d -p 8081:8081 --name auth --link=redis --link=nacos rms_auth:v1"

 

第一步:通過cd命令切換到鏡像和啟動腳本所在文件夾

第二步:執行dockers命令,docker load –i為加載鏡像命令,docker run 為啟動命令 –name后跟容器名,-p后是對外和docker內部端口,-d后台啟動 –link鏈接其他容器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM