项目地址: https://gitee.com/hwlin/spring-cloud-docker-demo
1.本地必须具有maven环境(用于打包)和docker环境(用于本地构建镜像),并且拥有一个可使用(上传镜像)的docker仓库,本地docker环境需配置好docker仓库地址。
2.更改父项目pom里面 的docker仓库相关 信息为本地环境信息。
230-5000
10.20.26.230:5000
http://${docker.registryHost}/v2
230-5000
admin
admin
[email protected]
3.在父pom里运行mvn package命令,构建所有镜像(将同时推送到配置的仓库)
[INFO] Scanning for projects...
Downloading: http://10.20.26.250:8081/nexus/content/repositories/releases/me/wlin/cloud/spring-cloud-docker/1.0-SNAPSHOT/maven-metadata.xml
[WARNING]
[WARNING] Some problems were encountered while building the effective model for me.wlin.cloud:feign-hystrix-config-demo:jar:0.0.1-SNAPSHOT
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: org.springframework.boot:spring-boot-starter-actuator:jar -> duplicate declaration of version (?) @ line 74, column 15
[WARNING] 'version' contains an expression but should be a constant. @ me.wlin.cloud:spring-cloud-docker:${version}, G:\work\workspace\spring-cloud-docker-demo\pom.xml, line 17, column 14
[WARNING] 'version' contains an expression but should be a constant. @ me.wlin.cloud:spring-cloud-docker:${version}, G:\work\soft\maven\apache-maven-3.2.1\repository\me\wlin\cloud\spring-cloud-docker\1.0-SNAPSHOT\spring-cloud-docker-1.0-SNAPSHOT.pom, line 17, column 14
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building hello-client 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ feign-hystrix-config-demo ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ feign-hystrix-config-demo ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 5 source files to G:\work\workspace\spring-cloud-docker-demo\hello-client\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ feign-hystrix-config-demo ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory G:\work\workspace\spring-cloud-docker-demo\hello-client\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ feign-hystrix-config-demo ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ feign-hystrix-config-demo ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ feign-hystrix-config-demo ---
[INFO] Building jar: G:\work\workspace\spring-cloud-docker-demo\hello-client\target\app.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:1.5.9.RELEASE:repackage (default) @ feign-hystrix-config-demo ---
[INFO]
[INFO] --- docker-maven-plugin:0.4.13:build (build-image) @ feign-hystrix-config-demo ---
[INFO] Copying G:\work\workspace\spring-cloud-docker-demo\hello-client\target\app.jar -> G:\work\workspace\spring-cloud-docker-demo\hello-client\target\docker\app.jar
[INFO] Building image wlin/hello-client
Step 1/3 : FROM frolvlad/alpine-oraclejdk8:slim
---> ceae9ac75359
Step 2/3 : ADD /app.jar //
---> edf4953e5aa5
Removing intermediate container cd87e5225192
Step 3/3 : ENTRYPOINT java -jar /app.jar
---> Running in 4ba314b602eb
---> e76393ba82a4
Removing intermediate container 4ba314b602eb
Successfully built e76393ba82a4
[INFO] Built wlin/hello-client
[INFO]
[INFO] --- docker-maven-plugin:0.4.13:tag (tag-image) @ feign-hystrix-config-demo ---
[INFO] Creating tag 10.20.26.230:5000/wlin/hello-client:0.0.1-SNAPSHOT from wlin/hello-client
[INFO]
[INFO] --- docker-maven-plugin:0.4.13:push (push-image) @ feign-hystrix-config-demo ---
[INFO] Pushing 10.20.26.230:5000/wlin/hello-client:0.0.1-SNAPSHOT
The push refers to a repository [10.20.26.230:5000/wlin/hello-client]
7972eb0f9919: Preparing
cc74a499898c: Preparing
602dfdb9055b: Preparing
cd7100a72410: Preparing
cd7100a72410: Layer already exists
602dfdb9055b: Layer already exists
cc74a499898c: Layer already exists
7972eb0f9919: Pushing [> ] 426.5kB/41.38MB
7972eb0f9919: Pushing [=> ] 852.5kB/41.38MB
7972eb0f9919: Pushing [===> ] 2.982MB/41.38MB
7972eb0f9919: Pushing [=====> ] 4.26MB/41.38MB
7972eb0f9919: Pushing [======> ] 5.538MB/41.38MB
7972eb0f9919: Pushing [========> ] 7.242MB/41.38MB
7972eb0f9919: Pushing [==========> ] 8.52MB/41.38MB
7972eb0f9919: Pushing [============> ] 10.22MB/41.38MB
7972eb0f9919: Pushing [=============> ] 11.5MB/41.38MB
7972eb0f9919: Pushing [===============> ] 13.21MB/41.38MB
7972eb0f9919: Pushing [===================> ] 16.19MB/41.38MB
7972eb0f9919: Pushing [=====================> ] 17.47MB/41.38MB
7972eb0f9919: Pushing [=======================> ] 19.17MB/41.38MB
7972eb0f9919: Pushing [========================> ] 20.45MB/41.38MB
7972eb0f9919: Pushing [==========================> ] 22.15MB/41.38MB
7972eb0f9919: Pushing [============================> ] 23.43MB/41.38MB
7972eb0f9919: Pushing [==============================> ] 25.13MB/41.38MB
7972eb0f9919: Pushing [===============================> ] 26.41MB/41.38MB
7972eb0f9919: Pushing [=================================> ] 28.12MB/41.38MB
7972eb0f9919: Pushing [====================================> ] 29.82MB/41.38MB
7972eb0f9919: Pushing [=====================================> ] 31.1MB/41.38MB
7972eb0f9919: Pushing [=======================================> ] 32.8MB/41.38MB
7972eb0f9919: Pushing [=========================================> ] 34.51MB/41.38MB
7972eb0f9919: Pushing [===========================================> ] 35.78MB/41.38MB
7972eb0f9919: Pushing [============================================> ] 37.06MB/41.38MB
7972eb0f9919: Pushing [==============================================> ] 38.77MB/41.38MB
7972eb0f9919: Pushing [==================================================>] 41.38MB
7972eb0f9919: Pushed
0.0.1-SNAPSHOT: digest: sha256:0b00f05c1d51ee9b60f2e78f83d10791ce31d8d862be80c372f83c44a6bed52d size: 1163
null: null
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13.272 s
[INFO] Finished at: 2018-09-27T16:32:50+08:00
[INFO] Final Memory: 59M/605M
[INFO] ------------------------------------------------------------------------
4.更改docker模块内的docker-compose.yml文件内的images地址为你的构建时推送的docker仓库地址(包含tag),然后将docker模块(即项目内的整个docker目录,包含yml和wait-for脚本)复制到任意含有docker和docker-compose的环境(需配置了构建时指定的仓库地址,如果是私有仓库,还需注意权限问题),如果本地环境符合,可以直接在项目docker路径内运行。
5.在复制的docker-compose.yml所在目录,运行docker-compose up (可以看到所有启动日志)或 docker-compose up -d 命令启动所有容器。
[root@server ~]# docker-compose up -d
Starting temp_eurekaServer_1 ... done
Starting temp_hello-service_1 ... done
Starting temp_config-server_1 ... done
Starting temp_hello-client_1 ... done
[root@server ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0885ce551787 10.20.26.230:5000/wlin/hello-client:0.0.1-SNAPSHOT "/bin/sh /wait-for..." 7 weeks ago Up 15 seconds 0.0.0.0:8260->8260/tcp temp_hello-client_1
b9c132efbfaf 10.20.26.230:5000/wlin/hello-service:0.0.1-SNAPSHOT "/bin/sh /wait-for..." 7 weeks ago Up 16 seconds 0.0.0.0:8270->8270/tcp temp_hello-service_1
96ee586afd18 10.20.26.230:5000/wlin/config-server:0.0.1-SNAPSHOT "/bin/sh /wait-for..." 7 weeks ago Up 16 seconds 0.0.0.0:8210->8210/tcp temp_config-server_1
ee1e8011a9ed 10.20.26.230:5000/wlin/eureka-server:0.0.1-SNAPSHOT "java -Djava.secur..." 7 weeks ago Up 17 seconds 0.0.0.0:8280->8280/tcp temp_eurekaServer_1
3b29b82a169a registry:2.5 "/entrypoint.sh /e..." 8 weeks ago Up About an hour 0.0.0.0:5000->5000/tcp repo
6.使用本地浏览器或者http工具访问client地址: 127.0.0.1:8260/client/hello?name=tom
[root@server ~]# curl 127.0.0.1:8260/client/hello?name=tom
hi,tom.I'm hello-service from the port 8270
项目地址: https://gitee.com/hwlin/spring-cloud-docker-demo