Windows开发完成后上传服务器进行容器化

119 阅读2分钟

0.引入

Windows是目前最稳定的操作系统,拥有庞大的软件生态,特别是日常应用和一些便捷的小工具。而且Windows11在UI上进行了大幅的改善,这两点便是我离不开这个操作系统的原因。

然而令人遗憾的是Windows并不支持原生docker,通过子系统的办法也能够使用,但是这样会有很大的内存开销。

正好我手头有一台闲置的笔记本,于是便想将它利用起来弥补这个不足。

1.思路

在本地进行项目开发,完成打包后通过scp拷贝到服务器,接着编写dockerfile进行容器化。(一切测试正常之后再发布到GitHub)

2.过程记录

2.1 本地开发

  1. 创建一个Web项目

image.png

  1. 写个最简单的HelloWorld
package com.example.demo.controller;

@RestController
public class TestController {
    @RequestMapping("/")
    public String hello() {
        return "Hello World";
    }
}
#application.properties
server.port=8080
  1. 用IDEA内置Maven工具打包

image.png

  1. 编写dockerfile
FROM java:8
ADD /target/demo-0.0.1-SNAPSHOT.jar demo.jar
ENTRYPOINT ["java","-jar","demo.jar"]
EXPOSE 8080
  1. 复制到服务器
scp -r .\demo\ osboxes@192.168.0.113:~

2.2 在服务器容器化

  1. 通过dockerfile创建镜像
docker build -t test/demo .
  1. 查看后,通过镜像创建并运行容器
docker run -p 2333:8080 test/demo
  1. 访问页面,进行测试

image.png

一切正常。

3.个人体会

可能在企业开发中会有一整套的CI/CD流程,整个开发测试环境也会有很大的不同。

不过就我个人的小项目来说,容器化只是在部署之前的一个环节,测试的话还是自己在本地进行测试。

目前这个解决方案能够满足我Windows开发和练习Docker使用的需求了。

其实这是最原始的解决方案(在WSL之前),不过我觉得这依旧是最好的解决方案,多一条文件拷贝命令就能节省几个G的内存占用。(当然主机内存够大的话,直接使用WSL体验应该是最好)