使用podman运行docker-compose.yml的脚本
项目描述
Podman Compose
这是一个使用Compose Spec和Podman后端的实现。本项目关注
- 无根
- 无守护进程的过程模型,我们直接执行podman,不运行守护进程。
本项目仅依赖于
podman
- podman dnsname 插件:通常位于
podman-plugins
或podman-dnsname
发行版包中,这些包默认不会被拉取,您需要安装它们。这允许容器在同一个CNI网络中相互解析。当podman使用netavark作为网络后端时,这不是必需的。 - Python3
- PyYAML
- python-dotenv
它是一个单一的Python文件脚本,您可以将其放入PATH中并运行。
参考
替代方案
如本文这篇所述,您可以设置一个podman.socket
并使用未经修改的docker-compose
与该套接字通信,但在此情况下,您将失去进程模型(例如,docker-compose build
将向守护进程发送可能很大的上下文tar包)
对于类似生产单机容器化环境,请考虑
对于真实的多节点集群(多节点集群),请查看任何生产OpenShift/Kubernetes发行版,如OKD。
版本
如果您有旧版本的podman
(3.1.0之前),您可能需要坚持使用旧版本的podman-compose
0.1.x
分支。旧版本分支0.1.x使用映射和解决方案来补偿无根限制。
现代podman版本(>=3.4)没有这些限制,因此您可以使用最新和稳定的1.x分支。
如果您是从podman-compose
版本0.1.x
升级,那么我们不再有全局选项-t
来设置映射类型,如hostnet
。如果您希望这种行为,请按标准方式传递,如YAML中的network_mode: host
。
安装
Pip
从PyPI安装最新稳定版本
pip3 install podman-compose
使用--user
安装到普通用户家目录而不需要root权限。
或从GitHub的最新开发版本
pip3 install https://github.com/containers/podman-compose/archive/main.tar.gz
Homebrew
brew install podman-compose
手动
curl -o /usr/local/bin/podman-compose https://raw.githubusercontent.com/containers/podman-compose/main/podman_compose.py
chmod +x /usr/local/bin/podman-compose
或在家目录中
curl -o ~/.local/bin/podman-compose https://raw.githubusercontent.com/containers/podman-compose/main/podman_compose.py
chmod +x ~/.local/bin/podman-compose
或从Fedora(从f31版本开始)仓库安装
sudo dnf install podman-compose
基本用法
我们在examples/
目录中包含了完全功能的示例堆栈。您可以从awesome-compose获取更多示例。
一个简单的示例可能是
cd examples/busybox
podman-compose --help
podman-compose up --help
podman-compose up
更丰富的示例可以在examples/awx3中找到,它具有
- 一个Postgres数据库
- RabbitMQ服务器
- MemCached服务器
- 一个Django Web服务器
- Django任务
在测试AWX3
示例时,如果出现错误,只需等待数据库迁移完成。还有AWX 17.1.0
测试
在tests/
目录中,我们有许多无用的docker-compose堆栈,目的是测试尽可能多的案例以确保兼容性
使用unittest的单元测试
使用以下命令运行unittest
python -m unittest pytests/*.py
贡献指南
如果您是用户或开发者并想贡献,请查看CONTRIBUTING部分
项目详情
podman_compose-1.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e47665546598a48d83d30ca2709a679412824bbe84b93f61779bc863e1a6f060 |
|
MD5 | d884184724a5f1c38968fc12a42f4b44 |
|
BLAKE2b-256 | bd670f8cf5ef346a22ce73dfdd0e60cf81342329b71a7fc118128929f0c07b62 |
podman_compose-1.2.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a78d0e5c83476ff36d4e5019a6e0e984133b4a416344904526ee05332734e32e |
|
MD5 | f9ab35e191a17f1d5a72b8f47138f67d |
|
BLAKE2b-256 | 8441ea0faa54a9a115245256fbd6e70894050e2b79e7881814861b2f5d74ba1a |