DevOps研发效能
媒体矩阵
开源中国APP
当前内容疑似存在违反社区规则内容。
请求查看
授权协议 MIT
开发语言 Google Go
操作系统 跨平台
软件类型 开源软件
所属分类 开发工具项目构建
开源组织
地区 不详
投 递 者 hualaka
适用人群 未知
收录时间 2023-09-21

软件简介

Parker 是一个轻量级打包工具与容器运行时,一条命令将工作目录打包成可执行文件。

示例是一个 c 语言编写的 ip 解析服务 gcc -o ipservice,其依赖 ipdb 资源文件。

使用 parker 将可执行文件 ipservice 和其依赖的 assert 压缩并打包成新的可执行文件 ipservice-c。

在目标机器上运行 ipservice-c 将会生成一个轻量的容器环境来运行原始的 ipservice 服务和其关联的资源文件。

⚙️ 安装

github releases 中下载并解压 Parker 安装包。推荐将解压后的 parker 文件夹移动到/usr/local/下,并将/usr/local/parker/bin目录加入到系统环境变量。

> parker --version
1.0.1

📦 使用

cd 到工作目录,执行 parker :target 该命令将 :target 连同当前的工作目录一起打包成一个 :target-c 可执行文件,将可执行文件放到目标机器上运行即可。

> cd :workdir && parker :target

示例

上面的可执行文件+资源文件打包是标准使用示例,当然也有一些非标准的使用方式,比如以一个 python3.11 编写的 server 为例子

> tree .
├── bar.png
├── foo.txt
├── python # cp /usr/bin/python3.11 ./
└── server.py

0 directories, 4 files

server.py 内容如下

from http.server import SimpleHTTPRequestHandler, HTTPServer

def run():
    print("listen on http://127.0.0.1:8000")
    server_address = ('127.0.0.1', 8000)
    httpd = HTTPServer(server_address, SimpleHTTPRequestHandler)
    httpd.serve_forever()

run()

cd 到工作目录中执行 parker python,你将会得到一个 python-c 文件,这就是打包好的可执行文件,将其上传到目标机器中执行即可。

> parker python
python-c
├── server.py
├── python
├── foo.txt
└── bar.png
🍻 parker successful

------------------------------------------------------------------------ move pyhon-c to target
> tree .
.
└── python-c

0 directories, 1 file

------------------------------------------------------------------------ run python-c
> ./python-c server.py
listen on http://127.0.0.1:8000

此处 python-c 会将参数传递给 python 进程。

❗️ parker 不解决 python 的动态编译问题。

github: https://github.com/weiwenhao/parker

gitee: https://gitee.com/nature-lang/parker

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
2 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部