之前都是直接用公司的DevOps来打包发布,对容器镜像相关并不了解,现在开始从零学习相关知识( 丢脸-_-|| )。1. 创建maven项目
1. 从spring initializr下载webflux空项目
文章图片
2. 添加测试接口
@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}@Bean
public RouterFunction routerFunction() {
return RouterFunctions.route(RequestPredicates.path("/demo/hello/{name}"),
request -> ServerResponse.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(Mono.just("hello " + request.pathVariable("name")), String.class)
);
}
}
启动项目并访问
http://localhost:8080/demo/hello/name
,浏览器显示hello name
。2. 创建docker镜像
1. 创建Dockerfile文件 【【快速学习】docker构建java项目实践】这里直接用了公司的jdk11基础镜像:
#tencent konajdk11
FROM xxxx.xxxx.com/tjdk/tencentkona11LABEL maintainer="xxxx@tencent.com"# 项目放在指定目录下
RUN mkdir -p /app
ADD target/*.jar /app#encoding settings
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8WORKDIR /app
CMD java -Dfile.encoding=utf-8 \
-jar /app/demo-webflux-*.jar
2. 构建镜像 将项目打包好的
jar文件
和Dockerfile文件
上传到测试服务器。(开发机上没安装docker,专门申请了台测试服务器来做测试,测试服务器安装了docker)。- 因为测试推送到公司的内部仓库,先在命令行上登录仓库:
docker login xxx.xxx.com
- 构建镜像
docker build -t xxx.xxx.com/xxx-dev/demo-webflux:latest -f Dockerfile .
- 推送到仓库
docker push xxx.xxx.com/xxx-dev/demo-webflux:latest
通过docker images
可以看到构建的镜像。
docker run -p 8080:8080 -itdxxx.xxx.com/xxx-dev/demo-webflux
详细参考可见:Docker 命令大全
在浏览器上输入:
http://测试服务器IP:8080/demo/hello/name
,浏览器显示hello name
。推荐阅读
- linux|2022年云原生趋势
- 个人日记|K8s中Pod生命周期和重启策略
- k8s|k8s(六)(配置管理与集群安全机制)
- Go|Docker后端部署详解(Go+Nginx)
- docker|Docker
- Alpine Docker 安装 bash
- docker|docker导入dmp文件到oracle容器
- 阿里云docker开发者平台镜像上传和下载
- 工具|dockers 自定义tomcat