跳转到主要内容

使用podman运行docker-compose.yml的脚本

项目描述

Podman Compose

Tests

这是一个使用Compose SpecPodman后端的实现。本项目关注

  • 无根
  • 无守护进程的过程模型,我们直接执行podman,不运行守护进程。

本项目仅依赖于

  • podman
  • podman dnsname 插件:通常位于 podman-pluginspodman-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 (45.8 kB 查看散列)

上传时间

构建分布

podman_compose-1.2.0-py2.py3-none-any.whl (39.8 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者