一个 Hello Dart Docker 服务和 Kubernetes

一个简单的 HTTP 示例,包含 Docker 和 Kubernetes

  • 使用 dart shelf 库的 HTTP 服务器,监听默认端口 8080(可以通过参数和环境变量覆盖)
  • Docker 配置,包含 Dart AOT 编译(生成小巧高效的可执行文件)
  • Kubernetes 配置

运行示例

使用 Dart SDK 运行

您可以使用 Dart SDK 如下运行示例(可能会使用可选参数 –port=8080)

$ dart run app/lib/server.dart
Server listening on port 8080

使用 AOT 编译的可执行文件运行

使用编译好的可执行文件运行

$ dart compile exe ./app/lib/server.dart -o ./bin/server # server.exe for windows
$ ./bin/server
Server listening on port 8080

使用 Docker 运行

如果您安装了 Docker Desktop,您可以使用 docker 命令进行构建和运行

$ docker build . -f docker/Dockerfile -t hello-server
$ docker run --name hello-server --rm -it -p 8080:8080 hello-server
Server listening on port 8080

要停止,请按 Ctrl+C 或从第二个终端操作

$ docker kill --signal=SIGINT hello-server

在 Kubernetes 中运行

构建 Docker 镜像后(使用与 docker run 相同的映射)

$ kubectl apply -f kubernetes/deployment.yaml   

要滚动更新 Docker 镜像

$ kubectl rollout restart deployment hello-server  

测试

从第二个终端操作

$ curl https://:8080
Hello, World!
$ curl https://:8080/echo/I_love_Dart
I_love_Dart

您应该会在第一个终端看到打印的日志

2021-05-06T15:47:04.620417  0:00:00.000158 GET     [200] /
2021-05-06T15:47:08.392928  0:00:00.001216 GET     [200] /echo/I_love_Dart

参考

GitHub

查看 Github