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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM