- 新增一个controller,作为象征性的demo代码:
package com.bolingcavalry.jdk8mavenspringboot.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
@RestController
public class Hello {
@RequestMapping(value = “/hello”, method = RequestMethod.GET)
public String hello() {
return "Hello world, " + new Date();
}
}
- pom.xml所在目录下,新建文件夹m2,里面增加maven的配置文件settings.xml,该文件是在FaaS开发过程中,制作镜像时用到的(制作镜像时会编译构建java项目),强烈建议在里面配置好您的maven私服,或者阿里云镜像,这样制作镜像时会快很多,我这里已经配置了阿里云镜像,依然耗时两分多钟(如下图),所以如果您有nexus3私服一定要优先考虑:
- 修改配置文件src/main/resources/application.properties,增加一行端口配置,这是fwatchdog转发到的端口:
server.port=8082
- 至此,编码工作已完成,可见这就是个普通springboot工程,接下来要考虑的是如何制作Docker镜像,即Dockerfile的编写;
开发Dockerfile
- 前面的实战中咱们已经体验过,开发FaaS的时候会将代码编译构建制作成镜像,因此对应的Dockerfile也要准备好,下面是完整的Dockerfile内容:
用maven镜像作为基础镜像,用于编译构建java项目
FROM maven:3.6.3-openjdk-8 as builder
WORKDIR /home/app
将整个项目都复制到/home/app目录下
COPY . /home/app/
进入pom.xml所在目录执行构建命令,指定m2/settings.xml文件作为配置文件,
请在settings.xml中配置好私服,否则构建速度极慢
RUN cd function && mvn clean package -U -DskipTests --settings ./m2/settings.xml
前面用maven编译构建完毕后,这里将构建结果复制到指定位置用于提取文件
RUN cp /h