docker-compose發(fā)布springcloud服務(wù)

本人研究docker-compose中間花了大量的時間,網(wǎng)上一大堆,說的都不是很全面,決定貢獻出來給大家

前提條件:宿主機安裝jdk8,安裝docker、安裝docker-compose

關(guān)于安裝docker、docker-compose的文章我前面已經(jīng)說過了,可以回頭再看看。

這里通過演示兩個注冊中心、一個配置服務(wù):eureka-cluster、eureka-cluster2、config-center

目錄結(jié)構(gòu)如下:

image.png

1.編寫Dockerfile文件

eureka

FROM java:8
# ARG JAR_FILE
# ARG LIB_FILE
ADD lib lib
ADD discovery-eureka-1.0.jar /app.jar
# ADD ${LIB_FILE} /lib
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Duser.timezone=GMT+08"]
CMD ["-Xms512m","-Xmx512m","-jar", "/app.jar","--spring.profiles.active=cluster","--server.port=8081","--eureka.client.service-url.defaultZone=http://root:12323232@172.16.11.6:8082/eureka/"]

eureka2

FROM java:8
# ARG JAR_FILE
# ARG LIB_FILE
ADD lib lib
ADD discovery-eureka-1.0.jar /app.jar
# ADD ${LIB_FILE} /lib
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Duser.timezone=GMT+08"]
CMD ["-Xms512m","-Xmx512m","-jar", "/app.jar","--spring.profiles.active=cluster","--eureka.instance.ipAddress=172.16.11.76","--server.port=8082","--eureka.client.service-url.defaultZone=http://root:12323232@172.16.11.6:8081/eureka/"]

config-center

FROM java:8
# ARG JAR_FILE
# ARG LIB_FILE
ADD lib lib
ADD config-center-1.0.jar /app.jar
# ADD ${LIB_FILE} /lib
#  -- eureka.instance.ipAddress=172.16.11.76
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Duser.timezone=GMT+08"]
CMD ["-Xms512m","-Xmx512m","-jar", "/app.jar","--spring.profiles.active=native","--server.port=8889","--eureka.client.service-url.defaultZone=http://samc:samc@172.16.11.76:8081/eureka/,http://root:12323232@172.16.11.6:8082/eureka/"]

2.編寫docker-compose

version: '3'
services:
  euraka:
    build: /home/cater/spring-java/eureka-cluster
    ports:
     - 8081:8081
    volumes:
     #將項目中的log4j日志目錄,映射到宿主機的目錄下,格式為  宿主機:容器目錄
      - "/application/logs/euraka:/application/logs/business-discovery"
  euraka2:
    build: /home/cater/spring-java/eureka-cluster2
    ports:
      - 8082:8082
   depends_on:
     - euraka
  config-center:
    build: /home/cater/spring-java/config-center
    ports:
      - 8889:8889
    depends_on:
      - euraka
      - euraka2

4 整體結(jié)構(gòu)如下:

image.png

5.進入docker-compose.yml所在的目錄

運行命令:

docker-compose up -d

即可構(gòu)建和運行項目

注意:ENTRYPOINT和CMD的效果不同,可以直接使用CMD替代

1 ENTRYPOINT是追加的方式,遇到數(shù)組是不能覆蓋
--spring.profiles.active=native
而項目中的yml的配置 為spring.profiles.active=dev,那么配置在ENTRYPOINT中的效果就是:spring.profiles.active=native,dev ,是追加的方式
如果配置在CMD中,是覆蓋的效果,即:spring.profiles.active=dev

2 eureka.instance.ipAddress 不能指定主機的ip
dockerfile中
如 eureka.instance.ipAddress=172.16.11.6,不能指定為主機的ip,在docker中這個選項略去

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容