bsmirks / manypacks

A Docker image for creating system packages

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Manypacks

This repository hosts code, builds, and deploys a container that comes with software necessary for creating system packages.

Specifically, the container contains the following:

  • FPM - used to build packages such as rpms, debs, OSX packages, etc
  • rpmbuild - use to build rpm packages (used by FPM for it, too)
  • dpkg-deb - used to create deb packages
  • choco - used to create choco/nupkg packages

Quick start

This section describes how to install Podman and pull container images.

Installing on Mac

The instructions in this section assume Brew is your package manager.

  1. Install Podman - brew install podman
  2. Initialize a Podman machine, a qemu VM which runs Podman locally - podman machine init
  3. Start the machine that was downloaded and/or started in the last step - podman machine start

Linux (w/ numerous distros) and Windows install instructions can be found here

Pulling and running containers

Images can be pulled using the podman pull command. For example, the following command pulls manypacks from one of the Docker repositories:

podman pull bsmirks/manypacks

After pulling a container, you can list it and some basic info like the container ID with:

podman image ls

Start a shell inside of the container with:

podman run -it <container_id> /bin/bash

Limitations

Manypacks utilizes FPM, dpkg-deb, and choco to allow for creating a few different kinds of packages. Along those lines, this section serves to list what the container can and can't do.

Can:

  • Create rpms for yum and zypper based operating systems
  • Create debs for apt based operating systems
  • Create .nupkg packages for choco based operationg systems (Windows)
  • Create OSX packages for MacOS

Can't:

  • Sign your packages (this is being explored)

Software

This section provides helpful links and information for the software included in the container.

dpkg-deb

dpkg-deb is a Debian package archive (.deb) manipulation tool. It is included in the container in order to create debs for apt based systems.

FPM

fpm makes it easy and quick to build packages such as rpms, debs, OSX packages, etc.

Chocolatey

choco is a package manager for Windows systems and includes tooling for creating .nupkg packages that you can install on Windows systems.

Tags

There are a few different tags available providing a couple of different options to assist in making the images as minimalistic as possible for different use cases. All of these run on Debian 10.

The tags below work for Docker registries as well as the GitHub Container registry, ghcr.io if you so desire.

  • manypacks:latest provides all of the tools listed above
  • manypacks:choco provides only choco if just making choco/nupkg's is your goal
  • manypacks:no-choco provides everything except for choco if you just want to create packages for Linux

Contributing

Contributing synopsis:

  • Make a fork of this repo
  • Make your proposed changes in your fork
  • Submit a PR to this repository, comparing your fork to the upstream
  • Once a PR is merged, GitHub Actions will build the manypacks image and its tags to Docker registries and the GitHub Container Repository (ghcr.io)

About

A Docker image for creating system packages


Languages

Language:Dockerfile 100.0%