简单的一个示例
@SpringBootApplication
@EnableEurekaServer
@RestController
public class EurekaserverApplication implements CommandLineRunner{
private static Logger logger = LoggerFactory.getLogger(EurekaserverApplication.class);
public static void main(String[] args) {
SpringApplication.run(EurekaserverApplication.class, args);
}
//用来测试 是否镜像容器是否成功
@RequestMapping("/user")
public Object findUser(){
Map<String, String > map = new HashMap<>();
map.put("name", "xuxiaoxiao");
map.put("age","2");
Optional o=Optional.empty();
System.out.println(o.isPresent());
logger.debug("========我是日志debug==========");
logger.info("========我是日志info==========");
return map;
}
@Override
public void run(String... args) throws Exception {
System.out.println("服务启动了");
}
}
application.yml
server:
port: 7001
eureka:
instance:
hostname: localhost
client:
#声明自己是个服务端
registerWithEureka: false #false表示不向注册中心注册自己
fetchRegistry: false #false表示自己就是注册中心,职责是维护实例,不参加检索
serviceUrl: #设置eureka server的交互地址,即对外暴露的地址
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.wangtao</groupId>
<artifactId>demo</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<!--docker私服地址-->
<!-- <docker.repostory>47.93.130.192:5000</docker.repostory>-->
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.6.Final</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<mainClass>com.wangtao.EurekaserverApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>
jar包不用跟我一样,普通的一个springboot工程依赖的jar包就行
maven clean install 打包传到linux服务器上
编写Dockefile文件
FROM jdk1.8 #基础镜像,需要提前把jdk做成镜像
VOLUME /tmp #挂载的目录
#ARG JAR_FILE
ADD demo-1.0-SNAPSHOT.jar app.jar #添加宿主机的jar包到容器内部
ENTRYPOINT ["java","-jar","app.jar"] #启动执行命令
执行命令
docker build -t demo . //后面有一个. 注意一下是当前路径(demo:打包成的镜像名称)
启动容器
docker run -d -p 7001:7001 --name=demo d164ad0330c9 //d164ad0330c9 (镜像id)
查看启动的容器
进入容器内部
有个app.jar,退出容器
可以看到已启动,访问一下
可以看到可以正常访问,下一遍介绍怎么用jenkins进行自动化部署