跳转到主要内容

简化容器使用

项目描述

sugar

简化容器使用。

你可能想知道,为什么我需要一个新库来包装docker-compose或podman-compose,因为它们已经很简单易用了?

是的,它们确实简单易用,但如果你在命令行中需要指定一些额外的参数,例如 --env-file--project-name--file 等,每次编写可能非常繁琐。

在这种情况下,我们可以使用脚本或 make 吗?

是的,对于一个项目来说,这已经足够好了。但是,如果你维护或协作多个项目,这就像是一个模板。

此外,如果你维护了一些额外的脚本以提高你的容器堆栈,这些脚本也会像模板一样。

因此,这个项目的想法是组织你的容器堆栈,收集一些有用的脚本,并在配置文件中集中这些信息。因此,命令行将非常简单。

安装方法

$ pip install containers-sugar

功能特性

可用的 docker-compose 命令有

  • build
  • config
  • create
  • down
  • events
  • exec
  • images
  • kill
  • logs
  • pause
  • port
  • ps
  • pull
  • push
  • restart
  • rm
  • run
  • start
  • stop
  • top
  • unpause
  • up
  • version

这些命令在主配置文件/插件中可用,因此无需指定任何额外参数即可访问。

对于额外的命令,我们将它们收集到一个名为 ext 的配置文件/插件中,因此您可以使用类似 sugar ext restart 的方式访问它们。

当前可用的 ext 命令有

  • start -> up 的别名
  • restart -> 执行 stopup

如何使用它

首先,您需要将配置文件 .sugar.yaml 放置在项目的根目录中。以下是一个配置文件的示例

version: 1.0
compose-app: docker compose
default:
  group: ${{ env.ENV }}
groups:
  group1:
    project-name: project1
    compose-path:
      - containers/tests/group1/compose.yaml
    env-file: .env
    services:
      default: service1,service3
      available:
        - name: service1
        - name: service2
        - name: service3
  group2:
    project-name: null
    compose-path: containers/tests/group2/compose.yaml
    env-file: .env
    services:
      available:
        - name: service1
        - name: service3

使用示例

  • 为 group1 构建默认服务(service1,service3):sugar build --group group1

  • 为 group2 构建所有服务(未定义默认服务):sugar build --group group2

  • 为 group1 构建所有服务(忽略默认服务):sugar build --group group1 --all

  • 启动 group1 的默认服务:sugar ext start --group group1

  • 重启 group1 的所有服务(忽略默认服务):sugar ext restart --group group1 --all

  • 重启 group1 的 service1 和 service2:sugar ext restart --group group1 --services service1,service2

注意:如果使用:default: group: ${{ env.ENV }},则无需指定 --group <GROUP_NAME>,除非您想使用默认组以外的组。

由以下机构支持