Code Monkey home page Code Monkey logo

manypacks's Introduction

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)

manypacks's People

Contributors

bsmirks avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.