您好,登錄后才能下訂單哦!
今天小編給大家分享一下docker怎么搭建nacos+nginx+mysql+redis+springboot項(xiàng)目的相關(guān)知識點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
請?zhí)崆鞍惭bdocker和docker-compose并自行配置鏡像加速。 提前說明:我的整個項(xiàng)目搭建其實(shí)是分的兩次,第一次部署時只有:nginx+mysql+redis+springboot項(xiàng)目,nacos是后期添加進(jìn)去自娛自樂的。
A.docker-compose.yml文件
version: "3" services: nginx: # 服務(wù)名稱,用戶自定義 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的文件調(diào)用的權(quán)限問題 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: . # 表示以當(dāng)前目錄下的Dockerfile開始構(gòu)建鏡像 ports: - 81:81 depends_on: # 依賴與mysql、redis,其實(shí)可以不填,默認(rèn)已經(jīng)表示可以 - 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: # 設(shè)置環(huán)境變量,相當(dāng)于docker run命令中的-e - JVM_XMS=512m - JVM_XMX=512m - JVM_XMN=128m #- MODE=standalone #單機(jī)版 ports: - "8848:8848" env_file: # 集群配置文件 - /root/nacos1/nacos-hostname.env restart: always depends_on: - mysql
B.springboot配置(自己的項(xiàng)目)
配置中的mysql和redis配置都是用的服務(wù)名而不是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 # 配置間隔多久才進(jìn)行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一個連接在池中最小生存的時間,單位是毫秒 minEvictableIdleTimeMillis: 30000 validationQuery: select 'x' testWhileIdle: true testOnBorrow: false testOnReturn: false # 打開PSCache,并且指定每個連接上PSCache的大小 poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 20 # 配置監(jiān)控統(tǒng)計攔截的filters,去掉后監(jiān)控界面sql無法統(tǒng)計,'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 #連接池最大連接數(shù)(使用負(fù)值表示沒有限制) max-idle: 8 #連接池中的最大空閑連接 max-wait: -1s #連接池最大阻塞等待時間(使用負(fù)值表示沒有限制) 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項(xiàng)目并命名為配置中的服務(wù)名
E.在對應(yīng)目錄下創(chuàng)建文件夾或文件
- /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:端口,因?yàn)閚ginx和nacos在同一個網(wǎng)絡(luò)下,這里可以用服務(wù)名訪問 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的數(shù)據(jù)庫信息
#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
最后的目錄結(jié)構(gòu)
docker-compose up -d mysql
F. 由于我的nacos是后期添加的,所以可以提前在mysql容器中添加好nacos數(shù)據(jù)庫再啟動(如果你沒有數(shù)據(jù)庫請?zhí)崆疤砑樱?/p>
啟動
docker-compose up
停止
docker-compose down
以上就是“docker怎么搭建nacos+nginx+mysql+redis+springboot項(xiàng)目”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。