一、Docker一键部署springcloud项目的方法
在springcloud项目的根目录下创建Dockerfile文件,示例如下:
# 使用java8作为基础镜像
FROM openjdk:8-jdk-alpine
# 作者信息
MAINTAINER Your Name <youremail@example.com>
# 创建工作目录
RUN mkdir -p /app
WORKDIR /app
# 拷贝jar文件到工作目录
COPY target/demo-0.0.1-SNAPSHOT.jar /app/demo.jar
# 指定容器启动时运行的命令
ENTRYPOINT ["java","-jar","/app/demo.jar"]
其中包含以下步骤:
- 使用openjdk:8-jdk-alpine作为基础镜像;
- 创建工作目录;
- 拷贝jar文件到工作目录;
-
指定容器启动时运行的命令。
-
创建docker-compose.yml文件
在springcloud项目的根目录下创建docker-compose.yml文件,示例如下:
version: '3'
services:
# web服务
demo:
build: .
ports:
- "8080:8080"
其中包含以下步骤:
- 使用Dockerfile进行构建;
-
将容器的8080端口映射到宿主机的8080端口。
-
执行docker-compose命令启动容器
在springcloud项目的根目录下执行以下命令启动容器:
docker-compose up -d
- 访问服务
在浏览器中访问http://localhost:8080
即可访问服务。
二、示例说明
以下是两个示例,分别是基于eureka和consul注册中心的springcloud项目的Dockerfile和docker-compose.yml文件示例。
- 基于eureka注册中心的springcloud项目的Dockerfile和docker-compose.yml文件示例
Dockerfile文件示例如下:
# 使用java8作为基础镜像
FROM openjdk:8-jdk-alpine
# 作者信息
MAINTAINER Your Name <youremail@example.com>
# 创建工作目录
RUN mkdir -p /app
WORKDIR /app
# 拷贝jar文件到工作目录
COPY target/demo-eureka-client-0.0.1-SNAPSHOT.jar /app/demo-eureka-client.jar
# 指定容器启动时运行的命令
ENTRYPOINT ["java","-jar","/app/demo-eureka-client.jar", "--spring.profiles.active=dev"]
docker-compose.yml文件示例如下:
version: '3'
services:
# web服务
demo-eureka-client:
build: .
ports:
- "8080:8080"
environment:
- "EUREKA_SERVER_URL=http://eureka-server:8761/eureka/"
depends_on:
- eureka-server
# 注册中心
eureka-server:
image: registry.cn-hangzhou.aliyuncs.com/springcloud-cn/eureka-server:1.0-SNAPSHOT
ports:
- "8761:8761"
其中,demo-eureka-client
服务依赖于eureka-server
服务,demo-eureka-client
服务会将自己注册到eureka-server
服务中。
- 基于consul注册中心的springcloud项目的Dockerfile和docker-compose.yml文件示例
Dockerfile文件示例如下:
# 使用java8作为基础镜像
FROM openjdk:8-jdk-alpine
# 作者信息
MAINTAINER Your Name <youremail@example.com>
# 创建工作目录
RUN mkdir -p /app
WORKDIR /app
# 拷贝jar文件到工作目录
COPY target/demo-consul-client-0.0.1-SNAPSHOT.jar /app/demo-consul-client.jar
# 指定容器启动时运行的命令
ENTRYPOINT ["java","-jar","/app/demo-consul-client.jar", "--spring.cloud.consul.host=consul-server"]
docker-compose.yml文件示例如下:
version: '3'
services:
# web服务
demo-consul-client:
build: .
ports:
- "8080:8080"
environment:
- "SPRING_CLOUD_SERVICE_REGISTRY=CONSUL"
# 注册中心
consul-server:
image: consul:1.6.1
ports:
- "8500:8500"
其中,demo-consul-client
服务会将自己注册到consul-server
服务中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker一键部署springcloud项目的方法 - Python技术站