Spring Boot Docker
开发环境
开发工具: Intellij IDEA 2018.2.6
springboot: 2.0.6.RELEASE
jdk: 1.8.0_192
maven: 3.6.0
docker: Docker Engine - Community 18.09.0
搭建项目
由于使用了 Spring Cloud 的Eureka所以加了 eureka 的依赖,基本不需要多加额外的配置
- pom.xml
4.0.0 spring-boot-docker com.andy 1.0.7.RELEASE jar io.spring.platform platform-bom Cairo-SR5 pom import org.springframework.cloud spring-cloud-dependencies Finchley.SR2 pom import UTF-8 UTF-8 andy 1.8 org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-starter-netflix-eureka-server spring-docker org.apache.maven.plugins maven-compiler-plugin 3.7.0 org.springframework.boot spring-boot-maven-plugin 2.0.3.RELEASE ZIP repackage com.spotify docker-maven-plugin 1.0.0 ${docker.image.prefix}/${project.artifactId} ["java", "-jar", "/${project.build.finalName}.jar"] src/main/docker java / ${project.build.directory} ${project.build.finalName}.jar spring-snapshots Spring Snapshots https://repo.spring.io/snapshot true spring-milestones Spring Milestones https://repo.spring.io/milestone false spring-snapshots Spring Snapshots https://repo.spring.io/snapshot true spring-milestones Spring Milestones https://repo.spring.io/milestone false
- application.yml
server: port: 8761 servlet: path: /spring: application: name: spring-eureka-dockereureka: client: register-with-eureka: false fetch-registry: false serviceUrl: defaultZone: http://localhost:8761/eureka
- 启动类
/** ** * @author Leone * @since 2018-03-06 **/@EnableEurekaServer@SpringBootApplicationpublic class DockerApplication { public static void main(String[] args) { SpringApplication.run(DockerApplication.class, args); }}
- Dockerfile
在src/main/docker目录下(没有则创建此目录)创建Dockerfile文件然后把maven编译后的jar文件拷贝到和Dockerfile同级的目录
# 基于哪个镜像FROM java:8# 将本地文件夹挂载到当前容器VOLUME /tmp# 维护者信息MAINTAINER leone "exklin@gmail.com"# 拷贝文件到容器ADD spring-docker.jar eureka.jar# 执行命令RUN bash -c 'touch eureka.jar'# 声明端口EXPOSE 8761# 配置容器启动后执行的命令ENTRYPOINT ["java","-jar","-Djava.security.egd=file:/dev/./urandom","eureka.jar"]
安装 idea Docker 插件后需要在 windows 下安装 Docker 在docker 插件的 Deploy configuration 里面配置 docker 容器参数之后 点击Run后就会顺序执行 Dockerfile 里面的命令就会启动这个docker容器。打开浏览器访问http://localhost:8761,