准备eureka-server项目,并发布到docker
1.新建spring-eureka-server
项目结构:
pom配置
maven依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
配置build内容
<build>
<plugins>
<!--spring boot 打包插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.3.RELEASE</version>
<configuration>
<mainClass>com.bruce.tool.springcloud.eureka.CloudEurekaApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
2.设置项目启动配置(bootstrap.yml)
eureka:
instance:
hostname: 127.0.0.1
#续约更新时间间隔(默认30秒)
lease-renewal-interval-in-seconds: 10
#续约到期时间(默认90秒)
lease-expiration-duration-in-seconds: 30
client:
fetch-registry: false
register-with-eureka: false
service-url:
defaultZone: http://127.0.0.1:8761/eureka/
server:
port: 8761
spring:
main:
allow-bean-definition-overriding: true
3.配置启动类
@EnableEurekaServer
@SpringBootApplication
public class CloudEurekaApplication {
public static void main(String[] args) {
SpringApplication.run(CloudEurekaApplication.class, args);
}
}
4.配置Dockerfile文件,并发布到docker
#基于哪个镜像
FROM java:8
# 将本地文件夹挂载到当前容器
VOLUME /home/eureka-server/
# 拷贝文件到容器,也可以直接写成ADD chu-eureka-0.0.1-SNAPSHOT.jar /eureka-server.jar
ADD tool-spring-cloud-eureka-8.0.0.RELEASE.jar eureka-server.jar
RUN bash -c 'touch /eureka-server.jar'
#环境变量 设置上海时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 开放8761端口
EXPOSE 8761
# 配置容器启动后执行的命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/eureka-server.jar"]
5.执行docker镜像构建命令
docker build -t docker-eureka-server .