ballerina 学习二十五 项目docker 部署&& 运行
ballerina 官方提供了docker 的runtime,还是比较方便的
基本项目创建
- 使用cli创建项目
按照提示操作就行
ballerina init -i
- 项目结构
添加了dockerfile 以及docker-compose 简单http 服务
├── Ballerina.toml
├── Dockerfile
├── README.md
├── docker-compose.yml
├── hello_service.bal
├── target
│ └── hello_service.balx
└── tests
└── hello_service_test.bal
- 添加简单http server 代码(hello_service.bal)
// A system package containing protocol access constructs
// Package objects referenced with 'http:' in code
import ballerina/http;
import ballerina/io;
// A service endpoint represents a listener
endpoint http:Listener listener {
port:9090
};
// A service is a network-accessible API
// Advertised on '/hello', port comes from listener endpoint
service<http:Service> hello bind listener {
// A resource is an invokable API method
// Accessible at '/hello/sayHello
// 'caller' is the client invoking this resource
sayHello (endpoint caller, http:Request request) {
// Create object to carry data back to caller
http:Response response = new;
// Objects and structs can have function calls
response.setTextPayload("Hello Ballerina!\n");
// Send a response back to caller
// Errors are ignored with '_'
// -> indicates a synchronous network-bound call
_ = caller -> respond(response);
}
}
Dockerfile
官方提供了基础镜像 ballerina/ballerina
- dockerfile
# build stage
# FROM ballerina/ballerina-platform AS build-env
# ADD . /home/ballerina/
# RUN ballerina build hello_service.bal
# RUN ls .
FROM ballerina/ballerina
EXPOSE 9090
COPY hello_service.bal /home/ballerina
RUN ls .
ENTRYPOINT [ "ballerina","run","hello_service.bal" ]
集成docker-compose
- docker-compose.yml
version: "3"
services:
http:
build: .
image: myhttp
ports:
- "9099:9090"
构建&&运行
docker-compose build
docker-compose up -d
效果

参考资料
https://hub.docker.com/r/ballerina/ballerina-platform/
https://hub.docker.com/r/ballerina/ballerina/
https://github.com/rongfengliang/ballerina-docker-demo
ballerina 学习二十五 项目docker 部署&& 运行的更多相关文章
- ballerina 学习二十六 项目docker 部署&& 运行(二)
ballerina 从发布,到现在官方文档的更新也是很给力的,同时也有好多改进,越来越好用了 可以参考官方文档 https://ballerina.io/learn/by-guide/restful- ...
- Java开发学习(二十五)----使用PostMan完成不同类型参数传递
一.请求参数 请求路径设置好后,只要确保页面发送请求地址和后台Controller类中配置的路径一致,就可以接收到前端的请求,接收到请求后,如何接收页面传递的参数? 关于请求参数的传递与接收是和请求方 ...
- ballerina 学习二十八 快速grpc 服务开发
ballerina 的grpc 开发模型,对于开发者来说简单了好多,不是schema first 的方式,而是我们 只要编写简单的ballerina service 就可以了,proto 文件是自动帮 ...
- Salesforce LWC学习(二十五) Jest Test
本篇参看: https://trailhead.salesforce.com/content/learn/modules/test-lightning-web-components https://j ...
- ballerina 学习二十九 数据库操作
ballerina 数据操作也是比较方便的,官方也我们提供了数据操作的抽象,但是我们还是依赖数据库驱动的. 数据库驱动还是jdbc模式的 项目准备 项目结构 ├── mysql_demo │ ├── ...
- ballerina 学习二十四 监控ballerina
ballerina 服务的监控还是比较方便的,以及集成了Prometheus Grafana Jaeger Elastic Stack 监控服务监控的集成 主要包含以下几个步骤 a. 安装docker ...
- JavaWeb学习 (二十五)————监听器(Listener)
一.监听器介绍 1.1.监听器的概念
- ballerina 学习二十二 弹性服务
主要包含断路器模式,负载均衡模式,故障转移,重试 Circuit Breaker 参考代码 import ballerina/http; import ballerina/log; import ba ...
- ballerina 学习二十 http/https
提供http && https server && client 访问功能 client endpoint 说白了就是http client 参考代码 import b ...
随机推荐
- EditPlus 4.3.2487 中文版已经发布(11月12日更新)
新的版本修复了粘贴多重选择文本的问题,以及增加了横向扩展列选模式选择范围的快捷键(Ctrl+Alt+→/←).
- ng-深度学习-课程笔记-9: 机器学习策略1(Week1)
1 为什么要应用机器学习策略( Why is machine learning strategy ) 当你想优化一个问题的时候,通常可以有很多尝试(比如收集更多数据,增加迭代次数,改用adam,改变网 ...
- 独家揭秘,106岁的IBM靠什么完成了世纪大转型|钛度专访
IBM大中华区董事长陈黎明 到2017年2月,陈黎明就担任IBM大中华区董事长整整两年了. 五年前,IBM历史上首位女CEO也是第9位CEO罗睿兰上任,三年前,IBM在罗睿兰的带领下以数据与分析.云. ...
- 20145301赵嘉鑫《网络对抗》逆向及Bof基础
20145301赵嘉鑫<网络对抗>逆向及Bof基础 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回 ...
- 20145309李昊《网络对抗》MSF应用基础
实验内容 掌握metasploit的基本应用方式1.主动攻击——ms08_0672.针对浏览器的攻击——ms11_0503.针对客户端的攻击——Adobe4.成功应用一个辅助模块——scanner/d ...
- linux及安全第四周总结——20135227黄晓妍
总结部分: 用户态和内核态: 前提知识:cpu有几种不同指令执行的级别 用户态:代码的掌控范围受限制 内核态:高级别,代码课执行特权指令,访问任意物理地址. 权限设置的意义:没有的话,系统容易啊崩溃, ...
- The current .NET SDK does not support targeting .NET Core 3.0
编译错误 Severity Code Description Project File Line Suppression StateError NETSDK1045 The current .NET ...
- 【yum】yum的使用
Yum官网 Yum的缓存 Yum仓库 Yum命令 Yum插件 yum的缓存 通过缓存可以提升我们环境的搭建效率,直接把原来缓存好的安装包数据放到新环境,省去了几个G的下载,甚至,有些时候客户现场不能联 ...
- springboot中websoket的使用
知识点:springboot项目中,websoket实时推送技术的介绍与使用 一.双向通信 http协议通信只能由客户端发起请求,服务端返回查询结果,如果我们想定时获取服务端的状态变化,相对 ...
- Redis之Set 集合
Redis Set 集合 Set 就是一个集合,集合的概念就是一堆不重复值的组合.利用 Redis 提供的 Set 数据结构,可以存储一些集合性的数据. 比如在 微博应用中,可以将一个用户所有的关注人 ...