# dubbo-sample-spring-boot-docker **Repository Path**: jurnlee/dubbo-sample-spring-boot-docker ## Basic Information - **Project Name**: dubbo-sample-spring-boot-docker - **Description**: 官方dubbo samples中的basic sample,包含提供者和消费者,zookeeper,dubbo-admin - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-23 - **Last Updated**: 2024-01-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: Dubbo, Docker, SpringBoot ## README # Dubbo Spring Boot Example 通过docker快速搭建dubbo学习环境; 免去本地搭建jdk/maven等编译环境,直接使用文本编辑器/vscode编辑源码,安装docker即可快速编译部署dubbo生产/消费/zk/控制台全套服务 ## 文件说明 ``` ./dubbo-samples-spring-boot 源码文件 Dockerfile-dubbo-sample-provider 单独构建编译生产者镜像 Dockerfile-dubbo-sample-consumer 单独构建编译消费者镜像 Dockerfile-dubbo-sample 直接构建打包整个pom项目,通过ENV参数启动生产或消费者 docker-compose.yml 整个服务的构建打包启动,使用Dockerfile-dubbo-sample ``` ## Modules - zookeeper 容器内部访问通过2181,自带api通过 http://localhost:8087/commands - dubbo-admin 默认8087端口,账号密码都是root - dubbo-provider - dubbo-comsumer # RUN 单独构建服务: ``` docker build -f Dockerfile-dubbo-sample-provider -t dubbo-sample-provider . docker build -f Dockerfile-dubbo-sample-consumer -t dubbo-sample-consumer . ``` 运行全部: ``` docker-compose build or docker-compose up -d ``` ## 构建时间问题 由于每次构建都是全部依赖从网络下载,构建时间极其漫长。 方案一:将构建容器中的`/root/.m2`目录映射出来进行复用,避免每次构建都从网络下载全部依赖 ``` docker run -it \ --name builder \ -v ./src-code:/usr/src/app \ -w /usr/src/app maven:3.8.1-openjdk-8 \ mvn clean package -U -DskipTests ``` 由于上面的启动命令只是编译Maven工程成功后,由于容器中的mvn进程不再占有终端输出,会导致容器自动停止了,下一次构建只需要`docker start builder`就会重新构建,最后在`./src-code/target`目录下即可看到构建完成的包。 但此项目采用的是docker-compose,并不适用此种方案。 方案二:从Docker Engine v18.09之后`RUN`提供了缓存机制,只需在RUN命令上增加`RUN --mount=type=cache,id=m2-cache,sharing=shared,target=/root/.m2 cmd`