luarocks 自定义包发布试用
luarocks 是一个方便的lua 包管理工具,可以帮助我们实现代码的复用以及分享
注册账户
我使用了gihtub 的账户,直接点击&&授权即可 
创建一个简单的luarocks 包项目
- 创建rockspec 文件
使用luarocks 工具
luarocks-5.1 write_rockspec --lua-version=5.1
- 修改rockspec 内容
主要是指定module、版本以及源码的相关信息
比如我的,注意source url 中git 协议的处理,注意使用git:// https:// 的有问题
package = "lua-rocks-app-project"
version = "1.0.0-2"
source = {
url = "git://github.com/rongfengliang/luarocks-packagedemo.git"
}
description = {
homepage = "https://github.com/rongfengliang/luarocks-packagedemo.git",
license = "unlicense"
}
dependencies = {
"lua ~> 5.1"
}
build = {
type = "builtin",
modules = {
["users.login"]="users/login.lua"
}
}
- 简单代码
就是一个简单的函数
users/login.lua
function init(name,password)
return name,password
end
return init;
- 创建upload apikey

上传包
luarocks upload lua-rocks-app-project-1.0.0-2.rockspec --api-key=${api-key}
调用自己编写的包
使用openresty,同时集成了docker 方便测试
- dockerfile
FROM openresty/openresty:alpine-fat
LABEL author="1141591465@qq.com"
RUN /usr/local/openresty/luajit/bin/luarocks install lua-rocks-app-project ## 按照包
- 调用代码
local userslogin = require("users.login")
local json = require("cjson")
function logininfo(name,pass)
local name,pass = userslogin(name,pass)
local loginresult= {
name = name,
pass = pass
}
ngx.say(json.encode(loginresult))
end
return logininfo
more_set_headers 'Content-Type application/json';
content_by_lua_block {
require("app/init")("dalong","admin");
}
- docker-compose 文件
version: "3"
services:
app:
build: ./
ports:
- "8080:80"
volumes:
- "./app/:/opt/app/"
- "./nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf"
- 效果

说明
代码很简单,只是为了方便测试使用而已,具体的代码可以参考github
参考资料
https://github.com/rongfengliang/luarocks-packagedemo
https://github.com/rongfengliang/openresty_luarocksmodule-demo
luarocks 自定义包发布试用的更多相关文章
- [Visual Studio] NuGet发布自定义包(Library Package)
源文章:dax.net http://www.cnblogs.com/daxnet/archive/2013/05/07/3064577.html 使用NuGet发布自己的类库包(Library Pa ...
- 自定义及发布一个webservice服务
自定义及发布一个webservice服务 - 声明 某个业务服务为webservice服务 通过@webservice 注解来声明 - 发布webservice服务 ...
- 实战教程:如何将自己的Python包发布到PyPI上
1. PyPi的用途 Python中我们经常会用到第三方的包,默认情况下,用到的第三方工具包基本都是从Pypi.org里面下载. 我们举个栗子: 如果你希望用Python实现一个金融量化分析工具,目前 ...
- 把包发布到npm官网
一.包 包就是多模块的集合,CommonJS的包规范给程序员提供了组织模块的标准,减少沟通成本. 规范: 所有的模块放在demo文件夹下(包名)的lib文件夹里面 在lib文件夹的同级目录下新建ind ...
- 关于iOS和android自定义包的名字
自定义包名的使用,android的包名和ios的包名都是你的自定义包名!如下以新浪微博SDK自定义包名示例:(官方没的,自己踩过坑,方便后来人吧) 相关技术文档:http://www.apicloud ...
- Axis2使war包发布为WebService
首先 吐槽下 Axis2的Eclipse插件.不好用,而且局限性大.并且添加包的过程...会及其痛苦.(懂的自然懂) 而且 发布的aar文件,不能解压缩重新打包再压缩...尝试过添加 jar包,但报错 ...
- Tomcat下使用war包发布项目
Tomcat下使用war包发布项目 转自<Tomcat下使用war包发布项目 >,地址:http://blog.csdn.net/wy818/article/details/7240294 ...
- 纯Python包发布setup脚本编写示例
如果你有多个模块需要发布,而它们又存在于多个包中,那么指定整个包比指定模块可能要容易地多.即使你的模块并不在一个包内,这种做法也行的通:你可以告诉Distutils从根包(root package)处 ...
- Python 调用自定义包
创建包 # mkdir -p /python/utils # touch /python/utils/__init__.py # vi /python/utils/Log.pyimport timed ...
随机推荐
- SQLite3 C/C++ 开发接口简介
SQLite3 C/C++ 开发接口简介 1.0 总览 SQLite3是SQLite一个全新的版本,它虽然是在SQLite 2.8.13的代码基础之上开发的,但是使用了和之前的版本不兼容的数据库格式和 ...
- php优秀框架codeigniter学习系列——index.php
程序流程图 先来看看CI框架运行的程序流程图. 从图中我们 看到,index.php作为唯一的入口文件,会初始化CI框架运行所需的基本资源. 路由器(Routing)会根据http请求,确定如何处理: ...
- Python 数据处理库 pandas 入门教程
Python 数据处理库 pandas 入门教程2018/04/17 · 工具与框架 · Pandas, Python 原文出处: 强波的技术博客 pandas是一个Python语言的软件包,在我们使 ...
- 【转载】Vue项目自动转换 px 为 rem,高保真还原设计图
前端开发中还原设计图的重要性毋庸置疑,目前来说应用最多的应该也还是使用rem.然而很多人依然还是处于刀耕火种的时代,要么自己去计算rem值,要么依靠编辑器安装插件转换. 而本文的目标就是通过一系列的配 ...
- js - 如何使子元素阻止继承父元素事件
想要阻止点击 #content 区域时触发a事件,需要在 #content 区域内加入阻止事件冒泡的代码,具体代码如下: <div id="box" onclick=&quo ...
- datatables 多一列报错Cannot read property 'sWidth' of undefined(…)/少一列报错Cannot read property 'style' of undefined(…)
datatables 多一列报错Cannot read property 'sWidth' of undefined(…)/少一列报错Cannot read property 'style' of u ...
- undefined is not an object (evaluating '_react2.PropTypes.string')
对所引用的组件原 .import React, {Component,PropTypes} from 'react' 改成:import React, {Component} from 'react' ...
- 读懂TCP状态转移
读懂TCP状态转移过程,对理解网络编程颇有帮助,本文将对TCP状态转移过程进行介绍,但各状态(总共11个)含义不在本文介绍的范围,请参考文末的书目列表. TCP状态转换图(state transiti ...
- Mac 终端添加代码到SVN
从SVN拉取代码步骤: 1.cd /Users/mark/zkh/Work/BC/(本地路径) 2.svn checkout https://192.168.2.99/svn/bc_android ...
- 再回首 基本数据类型和 if语句
一 变量:(使用变量是不能加引号,要不就变成字符串了) 变量的命名规则: 1.数字,字母,下划线组成. 2.变量不能是数字开头 3.区分大小写 4.不要使用中文或者拼音 5.要有相应的意义 6.不能使 ...