中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

docker怎么搭建nacos+nginx+mysql+redis+springboot項目

發布時間:2022-03-29 13:40:45 來源:億速云 閱讀:364 作者:iii 欄目:大數據

今天小編給大家分享一下docker怎么搭建nacos+nginx+mysql+redis+springboot項目的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

請提前安裝docker和docker-compose并自行配置鏡像加速。 提前說明:我的整個項目搭建其實是分的兩次,第一次部署時只有:nginx+mysql+redis+springboot項目,nacos是后期添加進去自娛自樂的。

A.docker-compose.yml文件

version: "3"
services:
  nginx: # 服務名稱,用戶自定義
    image: nginx:latest  # 鏡像版本
    ports:
      - 80:80  # 暴露端口
    volumes: # 掛載
      - /root/nginx/html:/usr/share/nginx/html
      - /root/nginx/nginx.conf:/etc/nginx/nginx.conf
    privileged: true # 這個必須要,解決nginx的文件調用的權限問題
  mysql:
    image: mysql:5.7.27
    ports:
      - 3306:3306
    environment: # 指定用戶root的密碼
      - MYSQL_ROOT_PASSWORD=
  redis:
    ports:
      - 6379:6379
    image: redis:latest
  vueblog:
    image: vueblog:latest
    build: . # 表示以當前目錄下的Dockerfile開始構建鏡像
    ports:
      - 81:81
    depends_on: # 依賴與mysql、redis,其實可以不填,默認已經表示可以
      - mysql
      - redis


  nacos1:
    hostname: nacos1
    container_name: nacos1
    image: nacos/nacos-server:latest
    volumes:
      # 需要添加mysql8的插件
      #- ./nacos/plugins/mysql/:/home/nacos/plugins/mysql/
      # 把日志文件映射出來
      - /root/nacos1:/home/nacos/logs
      # 把配置文件映射出來
      - /root/nacos1/custom.properties:/home/nacos/init.d/custom.properties

    environment: # 設置環境變量,相當于docker run命令中的-e
      - JVM_XMS=512m
      - JVM_XMX=512m
      - JVM_XMN=128m
      #- MODE=standalone   #單機版
    ports:
      - "8848:8848"
    env_file:
      # 集群配置文件
      - /root/nacos1/nacos-hostname.env
    restart: always
    depends_on:
      - mysql

B.springboot配置(自己的項目)

 配置中的mysql和redis配置都是用的服務名而不是ip地址

server:
  port: 81


spring:
  servlet:
    multipart:
      max-file-size: 10MB
      max-request-size: 10MB
  profiles:
    active: dev
  # mysql 配置
  datasource:
      url: jdbc:mysql://mysql:3306/blog4?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8
      username: 
      password: 
#      schema: classpath:springbootsecurityauth.sql
      sql-script-encoding: utf-8
      initialization-mode: always
      driver-class-name: com.mysql.cj.jdbc.Driver
      type: com.alibaba.druid.pool.DruidDataSource
      # 初始化大小,最小,最大
      initialSize: 1
      minIdle: 3
      maxActive: 20
     # 配置獲取連接等待超時的時間
      maxWait: 60000
      # 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒
      timeBetweenEvictionRunsMillis: 60000
      # 配置一個連接在池中最小生存的時間,單位是毫秒
      minEvictableIdleTimeMillis: 30000
      validationQuery: select 'x'
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      # 打開PSCache,并且指定每個連接上PSCache的大小
      poolPreparedStatements: true
      maxPoolPreparedStatementPerConnectionSize: 20
      # 配置監控統計攔截的filters,去掉后監控界面sql無法統計,'wall'用于防火墻 ,slf4j
      filters: stat,wall,slf4j
      # 通過connectProperties屬性來打開mergeSql功能;慢SQL記錄
      connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

  redis:
    database: 6
    host: redis
    port: 6379
    timeout: 5000s  # 連接超時時長(毫秒)
    jedis:
      pool:
        max-active: 20 #連接池最大連接數(使用負值表示沒有限制)
        max-idle: 8  #連接池中的最大空閑連接
        max-wait: -1s #連接池最大阻塞等待時間(使用負值表示沒有限制)
        min-idle: 0  #連接池中的最小空閑連接
    password:  #rootroot

C.Dockerfile文件

FROM java:8
EXPOSE 81
ADD vueblog.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java", "-jar", "/app.jar"]

 D.打包springboot項目并命名為配置中的服務名

E.在對應目錄下創建文件夾或文件

      - /root/nginx/html
      - /root/nginx/nginx.conf

#user  root;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

   #這里配置nacos的ip:端口,因為nginx和nacos在同一個網絡下,這里可以用服務名訪問
   upstream nacos {
        server nacos1:8848 weight=1 max_fails=2 fail_timeout=10s;
        #server nacos2:8848 weight=1 max_fails=2 fail_timeout=10s;
        #server nacos3:8848 weight=1 max_fails=2 fail_timeout=10s;
    }

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /usr/share/nginx/html/front;
            try_files $uri $uri/ /index.html last; # 別忘了這個哈
            index  index.html index.htm;
        }

       location /admin {
	    alias /usr/share/nginx/html/admin;
	    expires  1d;
	    index index.html;
	    autoindex on;
        }

        location /nacos {
            proxy_pass   http://nacos;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header REMOTE-HOST $remote_addr;
            add_header X-Cache $upstream_cache_status;
            add_header Cache-Control no-cache;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

       - /root/nacos1
      # 把配置文件映射出來
      - /root/nacos1/custom.properties

#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**
#management.metrics.export.elastic.host=http://localhost:9200
# metrics for prometheus
management.endpoints.web.exposure.include=*

# metrics for elastic search
#management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200

# metrics for influx
#management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true

 - /root/nacos1/nacos-hostname.env

配置nacos的數據庫信息

#nacos dev env
PREFER_HOST_MODE=hostname
NACOS_SERVERS=nacos1:8848
MYSQL_SERVICE_HOST=mysql
MYSQL_SERVICE_DB_NAME=nacos
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=
MYSQL_SERVICE_PASSWORD=
JVM_XMS=512m
JVM_XMX=512m
JVM_XMN=256m
JVM_MS=64m
JVM_MMS=128m

 最后的目錄結構

docker怎么搭建nacos+nginx+mysql+redis+springboot項目

先把mysql實例運行起來(千萬不要直接docker-compose up -d把所有的實例都運行起來)

docker-compose up -d mysql

F. 由于我的nacos是后期添加的,所以可以提前在mysql容器中添加好nacos數據庫再啟動(如果你沒有數據庫請提前添加)

啟動

docker-compose up

停止

docker-compose down

以上就是“docker怎么搭建nacos+nginx+mysql+redis+springboot項目”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玉山县| 新绛县| 盐亭县| 青冈县| 清苑县| 普定县| 元江| 祁门县| 凉山| 睢宁县| 荥经县| 临潭县| 缙云县| 河池市| 台北县| 柳林县| 东阿县| 萍乡市| 马龙县| 眉山市| 韶关市| 临湘市| 宁都县| 张家界市| 屯昌县| 忻州市| 博乐市| 察隅县| 陇川县| 杨浦区| 密云县| 通城县| 甘南县| 波密县| 黑山县| 资阳市| 大城县| 梧州市| 尖扎县| 都昌县| 双峰县|