Docker Packaging (apk, deb, rpm, static)
Перейти к файлу
CrazyMax a6805b98e3
use bake targets and makefile rules inheritance to create releases
also change directory structure from `<os>/<arch>[/<variant>]`
to `<pkgtype>/[<pkgdistro>/<pkgsuite>/]<arch>[/<variant>]` so
we are almost aligned with https://download.docker.com.

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-09-01 14:00:10 +02:00
.github use bake targets and makefile rules inheritance to create releases 2022-09-01 14:00:10 +02:00
pkg use bake targets and makefile rules inheritance to create releases 2022-09-01 14:00:10 +02:00
.gitignore makefile 2022-08-28 16:39:29 +02:00
Dockerfile override pkgs repo and version 2022-08-28 17:07:31 +02:00
LICENSE initial commit 2022-07-26 16:58:38 +02:00
Makefile use bake targets and makefile rules inheritance to create releases 2022-09-01 14:00:10 +02:00
README.md use bake targets and makefile rules inheritance to create releases 2022-09-01 14:00:10 +02:00
docker-bake.hcl license headers and Dockerfile for validation 2022-08-28 16:39:29 +02:00
packages.hcl use bake targets and makefile rules inheritance to create releases 2022-09-01 14:00:10 +02:00
packages.mk use bake targets and makefile rules inheritance to create releases 2022-09-01 14:00:10 +02:00
vars.mk use bake targets and makefile rules inheritance to create releases 2022-09-01 14:00:10 +02:00

README.md

Docker Packaging

About

This repository creates packages (apk, deb, rpm, static) for various projects and are published as a Docker image on Docker Hub.

Usage

vars.mk contains variables that will be used by the main Makefile and also across projects in pkg folder. It contains the list of apk, deb and rpm releases to produce and repos with current versions of projects.

Makefile contains targets to build specific or all packages and will output to ./bin folder:

# build debian packages for buildx project
$ make deb-buildx
# build deb and rpm packages for all projects
$ make deb rpm

Each project has also its own Makefile, Dockerfile and bake definition to build and push packages in two steps:

# build all packages for buildx v0.9.1 and output to ./bin folder
$ cd pkg/buildx/ 
$ BUILDX_VERSION=v0.9.1 make pkg
# build and push image to dockereng/packaging:buildx-v0.9.1 using bake.
# "release" target will use the "bin" folder as named context to create the
# image with artifacts previously built with make.
$ docker buildx bake --push --set *.tags=dockereng/packaging:buildx-v0.9.1 release

Packages are published to Docker Hub as a Docker image. You can use a tool like Undock to extract packages:

# extract packages for all platforms and output to ./bin/undock folder
$ undock --wrap --rm-dist --all dockereng/packaging:buildx-v0.9.1 ./bin/undock
tree ./bin/undock
./bin/undock/
├── alpine
│   ├── 3.14
│   │   ├── amd64
│   │   │   └── docker-buildx-plugin_0.9.1-0_x86_64.apk
│   │   ├── arm
│   │   │   ├── v6
│   │   │   │   └── docker-buildx-plugin_0.9.1-0_armhf.apk
│   │   │   └── v7
│   │   │       └── docker-buildx-plugin_0.9.1-0_armv7.apk
│   │   ├── arm64
│   │   │   └── docker-buildx-plugin_0.9.1-0_aarch64.apk
│   │   ├── ppc64le
│   │   │   └── docker-buildx-plugin_0.9.1-0_ppc64le.apk
│   │   ├── riscv64
│   │   │   └── docker-buildx-plugin_0.9.1-0_riscv64.apk
│   │   └── s390x
│   │       └── docker-buildx-plugin_0.9.1-0_s390x.apk
│   ├── 3.15
│   │   ├── amd64
│   │   │   └── docker-buildx-plugin_0.9.1-0_x86_64.apk
│   │   ├── arm
│   │   │   ├── v6
│   │   │   │   └── docker-buildx-plugin_0.9.1-0_armhf.apk
│   │   │   └── v7
│   │   │       └── docker-buildx-plugin_0.9.1-0_armv7.apk
│   │   ├── arm64
│   │   │   └── docker-buildx-plugin_0.9.1-0_aarch64.apk
│   │   ├── ppc64le
│   │   │   └── docker-buildx-plugin_0.9.1-0_ppc64le.apk
│   │   ├── riscv64
│   │   │   └── docker-buildx-plugin_0.9.1-0_riscv64.apk
│   │   └── s390x
│   │       └── docker-buildx-plugin_0.9.1-0_s390x.apk
│   └── 3.16
│       ├── amd64
│       │   └── docker-buildx-plugin_0.9.1-0_x86_64.apk
│       ├── arm
│       │   ├── v6
│       │   │   └── docker-buildx-plugin_0.9.1-0_armhf.apk
│       │   └── v7
│       │       └── docker-buildx-plugin_0.9.1-0_armv7.apk
│       ├── arm64
│       │   └── docker-buildx-plugin_0.9.1-0_aarch64.apk
│       ├── ppc64le
│       │   └── docker-buildx-plugin_0.9.1-0_ppc64le.apk
│       ├── riscv64
│       │   └── docker-buildx-plugin_0.9.1-0_riscv64.apk
│       └── s390x
│           └── docker-buildx-plugin_0.9.1-0_s390x.apk
├── centos
│   ├── 7
│   │   ├── amd64
│   │   │   └── docker-buildx-plugin-0.9.1-0.x86_64.rpm
│   │   ├── arm
│   │   │   ├── v6
│   │   │   │   └── docker-buildx-plugin-0.9.1-0.armv6hl.rpm
│   │   │   └── v7
│   │   │       └── docker-buildx-plugin-0.9.1-0.armv7hl.rpm
│   │   ├── arm64
│   │   │   └── docker-buildx-plugin-0.9.1-0.aarch64.rpm
│   │   ├── ppc64le
│   │   │   └── docker-buildx-plugin-0.9.1-0.ppc64le.rpm
│   │   ├── riscv64
│   │   │   └── docker-buildx-plugin-0.9.1-0.riscv64.rpm
│   │   └── s390x
│   │       └── docker-buildx-plugin-0.9.1-0.s390x.rpm
│   ├── 8
│   │   ├── amd64
│   │   │   └── docker-buildx-plugin-0.9.1-0.x86_64.rpm
│   │   ├── arm
│   │   │   ├── v6
│   │   │   │   └── docker-buildx-plugin-0.9.1-0.armv6hl.rpm
│   │   │   └── v7
│   │   │       └── docker-buildx-plugin-0.9.1-0.armv7hl.rpm
│   │   ├── arm64
│   │   │   └── docker-buildx-plugin-0.9.1-0.aarch64.rpm
│   │   ├── ppc64le
│   │   │   └── docker-buildx-plugin-0.9.1-0.ppc64le.rpm
│   │   ├── riscv64
│   │   │   └── docker-buildx-plugin-0.9.1-0.riscv64.rpm
│   │   └── s390x
│   │       └── docker-buildx-plugin-0.9.1-0.s390x.rpm
│   └── 9
│       ├── amd64
│       │   └── docker-buildx-plugin-0.9.1-0.x86_64.rpm
│       ├── arm
│       │   ├── v6
│       │   │   └── docker-buildx-plugin-0.9.1-0.armv6hl.rpm
│       │   └── v7
│       │       └── docker-buildx-plugin-0.9.1-0.armv7hl.rpm
│       ├── arm64
│       │   └── docker-buildx-plugin-0.9.1-0.aarch64.rpm
│       ├── ppc64le
│       │   └── docker-buildx-plugin-0.9.1-0.ppc64le.rpm
│       ├── riscv64
│       │   └── docker-buildx-plugin-0.9.1-0.riscv64.rpm
│       └── s390x
│           └── docker-buildx-plugin-0.9.1-0.s390x.rpm
├── debian
│   ├── bullseye
│   │   ├── amd64
│   │   │   └── docker-buildx-plugin_0.9.1-0_amd64.deb
│   │   ├── arm
│   │   │   ├── v6
│   │   │   │   └── docker-buildx-plugin_0.9.1-0_armel.deb
│   │   │   └── v7
│   │   │       └── docker-buildx-plugin_0.9.1-0_armhf.deb
│   │   ├── arm64
│   │   │   └── docker-buildx-plugin_0.9.1-0_arm64.deb
│   │   ├── ppc64le
│   │   │   └── docker-buildx-plugin_0.9.1-0_ppc64el.deb
│   │   ├── riscv64
│   │   │   └── docker-buildx-plugin_0.9.1-0_riscv64.deb
│   │   └── s390x
│   │       └── docker-buildx-plugin_0.9.1-0_s390x.deb
│   └── buster
│       ├── amd64
│       │   └── docker-buildx-plugin_0.9.1-0_amd64.deb
│       ├── arm
│       │   ├── v6
│       │   │   └── docker-buildx-plugin_0.9.1-0_armel.deb
│       │   └── v7
│       │       └── docker-buildx-plugin_0.9.1-0_armhf.deb
│       ├── arm64
│       │   └── docker-buildx-plugin_0.9.1-0_arm64.deb
│       ├── ppc64le
│       │   └── docker-buildx-plugin_0.9.1-0_ppc64el.deb
│       ├── riscv64
│       │   └── docker-buildx-plugin_0.9.1-0_riscv64.deb
│       └── s390x
│           └── docker-buildx-plugin_0.9.1-0_s390x.deb
├── fedora
│   ├── 35
│   │   ├── amd64
│   │   │   └── docker-buildx-plugin-0.9.1-0.x86_64.rpm
│   │   ├── arm
│   │   │   ├── v6
│   │   │   │   └── docker-buildx-plugin-0.9.1-0.armv6hl.rpm
│   │   │   └── v7
│   │   │       └── docker-buildx-plugin-0.9.1-0.armv7hl.rpm
│   │   ├── arm64
│   │   │   └── docker-buildx-plugin-0.9.1-0.aarch64.rpm
│   │   ├── ppc64le
│   │   │   └── docker-buildx-plugin-0.9.1-0.ppc64le.rpm
│   │   ├── riscv64
│   │   │   └── docker-buildx-plugin-0.9.1-0.riscv64.rpm
│   │   └── s390x
│   │       └── docker-buildx-plugin-0.9.1-0.s390x.rpm
│   ├── 36
│   │   ├── amd64
│   │   │   └── docker-buildx-plugin-0.9.1-0.x86_64.rpm
│   │   ├── arm
│   │   │   ├── v6
│   │   │   │   └── docker-buildx-plugin-0.9.1-0.armv6hl.rpm
│   │   │   └── v7
│   │   │       └── docker-buildx-plugin-0.9.1-0.armv7hl.rpm
│   │   ├── arm64
│   │   │   └── docker-buildx-plugin-0.9.1-0.aarch64.rpm
│   │   ├── ppc64le
│   │   │   └── docker-buildx-plugin-0.9.1-0.ppc64le.rpm
│   │   ├── riscv64
│   │   │   └── docker-buildx-plugin-0.9.1-0.riscv64.rpm
│   │   └── s390x
│   │       └── docker-buildx-plugin-0.9.1-0.s390x.rpm
│   └── 37
│       ├── amd64
│       │   └── docker-buildx-plugin-0.9.1-0.x86_64.rpm
│       ├── arm
│       │   ├── v6
│       │   │   └── docker-buildx-plugin-0.9.1-0.armv6hl.rpm
│       │   └── v7
│       │       └── docker-buildx-plugin-0.9.1-0.armv7hl.rpm
│       ├── arm64
│       │   └── docker-buildx-plugin-0.9.1-0.aarch64.rpm
│       ├── ppc64le
│       │   └── docker-buildx-plugin-0.9.1-0.ppc64le.rpm
│       ├── riscv64
│       │   └── docker-buildx-plugin-0.9.1-0.riscv64.rpm
│       └── s390x
│           └── docker-buildx-plugin-0.9.1-0.s390x.rpm
├── oraclelinux
│   ├── 7
│   │   ├── amd64
│   │   │   └── docker-buildx-plugin-0.9.1-0.x86_64.rpm
│   │   ├── arm
│   │   │   ├── v6
│   │   │   │   └── docker-buildx-plugin-0.9.1-0.armv6hl.rpm
│   │   │   └── v7
│   │   │       └── docker-buildx-plugin-0.9.1-0.armv7hl.rpm
│   │   ├── arm64
│   │   │   └── docker-buildx-plugin-0.9.1-0.aarch64.rpm
│   │   ├── ppc64le
│   │   │   └── docker-buildx-plugin-0.9.1-0.ppc64le.rpm
│   │   ├── riscv64
│   │   │   └── docker-buildx-plugin-0.9.1-0.riscv64.rpm
│   │   └── s390x
│   │       └── docker-buildx-plugin-0.9.1-0.s390x.rpm
│   ├── 8
│   │   ├── amd64
│   │   │   └── docker-buildx-plugin-0.9.1-0.x86_64.rpm
│   │   ├── arm
│   │   │   ├── v6
│   │   │   │   └── docker-buildx-plugin-0.9.1-0.armv6hl.rpm
│   │   │   └── v7
│   │   │       └── docker-buildx-plugin-0.9.1-0.armv7hl.rpm
│   │   ├── arm64
│   │   │   └── docker-buildx-plugin-0.9.1-0.aarch64.rpm
│   │   ├── ppc64le
│   │   │   └── docker-buildx-plugin-0.9.1-0.ppc64le.rpm
│   │   ├── riscv64
│   │   │   └── docker-buildx-plugin-0.9.1-0.riscv64.rpm
│   │   └── s390x
│   │       └── docker-buildx-plugin-0.9.1-0.s390x.rpm
│   └── 9
│       ├── amd64
│       │   └── docker-buildx-plugin-0.9.1-0.x86_64.rpm
│       ├── arm
│       │   ├── v6
│       │   │   └── docker-buildx-plugin-0.9.1-0.armv6hl.rpm
│       │   └── v7
│       │       └── docker-buildx-plugin-0.9.1-0.armv7hl.rpm
│       ├── arm64
│       │   └── docker-buildx-plugin-0.9.1-0.aarch64.rpm
│       ├── ppc64le
│       │   └── docker-buildx-plugin-0.9.1-0.ppc64le.rpm
│       ├── riscv64
│       │   └── docker-buildx-plugin-0.9.1-0.riscv64.rpm
│       └── s390x
│           └── docker-buildx-plugin-0.9.1-0.s390x.rpm
├── raspbian
│   ├── bullseye
│   │   ├── amd64
│   │   │   └── docker-buildx-plugin_0.9.1-0_amd64.deb
│   │   ├── arm
│   │   │   ├── v6
│   │   │   │   └── docker-buildx-plugin_0.9.1-0_armel.deb
│   │   │   └── v7
│   │   │       └── docker-buildx-plugin_0.9.1-0_armhf.deb
│   │   ├── arm64
│   │   │   └── docker-buildx-plugin_0.9.1-0_arm64.deb
│   │   ├── ppc64le
│   │   │   └── docker-buildx-plugin_0.9.1-0_ppc64el.deb
│   │   ├── riscv64
│   │   │   └── docker-buildx-plugin_0.9.1-0_riscv64.deb
│   │   └── s390x
│   │       └── docker-buildx-plugin_0.9.1-0_s390x.deb
│   └── buster
│       ├── amd64
│       │   └── docker-buildx-plugin_0.9.1-0_amd64.deb
│       ├── arm
│       │   ├── v6
│       │   │   └── docker-buildx-plugin_0.9.1-0_armel.deb
│       │   └── v7
│       │       └── docker-buildx-plugin_0.9.1-0_armhf.deb
│       ├── arm64
│       │   └── docker-buildx-plugin_0.9.1-0_arm64.deb
│       ├── ppc64le
│       │   └── docker-buildx-plugin_0.9.1-0_ppc64el.deb
│       ├── riscv64
│       │   └── docker-buildx-plugin_0.9.1-0_riscv64.deb
│       └── s390x
│           └── docker-buildx-plugin_0.9.1-0_s390x.deb
├── static
│   ├── darwin
│   │   ├── amd64
│   │   │   └── docker-buildx-plugin_0.9.1.tgz
│   │   └── arm64
│   │       └── docker-buildx-plugin_0.9.1.tgz
│   ├── linux
│   │   ├── amd64
│   │   │   └── docker-buildx-plugin_0.9.1.tgz
│   │   ├── arm
│   │   │   ├── v6
│   │   │   │   └── docker-buildx-plugin_0.9.1.tgz
│   │   │   └── v7
│   │   │       └── docker-buildx-plugin_0.9.1.tgz
│   │   ├── arm64
│   │   │   └── docker-buildx-plugin_0.9.1.tgz
│   │   ├── ppc64le
│   │   │   └── docker-buildx-plugin_0.9.1.tgz
│   │   ├── riscv64
│   │   │   └── docker-buildx-plugin_0.9.1.tgz
│   │   └── s390x
│   │       └── docker-buildx-plugin_0.9.1.tgz
│   └── windows
│       ├── amd64
│       │   └── docker-buildx-plugin_0.9.1.zip
│       └── arm64
│           └── docker-buildx-plugin_0.9.1.zip
└── ubuntu
    ├── bionic
    │   ├── amd64
    │   │   └── docker-buildx-plugin_0.9.1-0_amd64.deb
    │   ├── arm
    │   │   ├── v6
    │   │   │   └── docker-buildx-plugin_0.9.1-0_armel.deb
    │   │   └── v7
    │   │       └── docker-buildx-plugin_0.9.1-0_armhf.deb
    │   ├── arm64
    │   │   └── docker-buildx-plugin_0.9.1-0_arm64.deb
    │   ├── ppc64le
    │   │   └── docker-buildx-plugin_0.9.1-0_ppc64el.deb
    │   ├── riscv64
    │   │   └── docker-buildx-plugin_0.9.1-0_riscv64.deb
    │   └── s390x
    │       └── docker-buildx-plugin_0.9.1-0_s390x.deb
    ├── focal
    │   ├── amd64
    │   │   └── docker-buildx-plugin_0.9.1-0_amd64.deb
    │   ├── arm
    │   │   ├── v6
    │   │   │   └── docker-buildx-plugin_0.9.1-0_armel.deb
    │   │   └── v7
    │   │       └── docker-buildx-plugin_0.9.1-0_armhf.deb
    │   ├── arm64
    │   │   └── docker-buildx-plugin_0.9.1-0_arm64.deb
    │   ├── ppc64le
    │   │   └── docker-buildx-plugin_0.9.1-0_ppc64el.deb
    │   ├── riscv64
    │   │   └── docker-buildx-plugin_0.9.1-0_riscv64.deb
    │   └── s390x
    │       └── docker-buildx-plugin_0.9.1-0_s390x.deb
    └── jammy
        ├── amd64
        │   └── docker-buildx-plugin_0.9.1-0_amd64.deb
        ├── arm
        │   ├── v6
        │   │   └── docker-buildx-plugin_0.9.1-0_armel.deb
        │   └── v7
        │       └── docker-buildx-plugin_0.9.1-0_armhf.deb
        ├── arm64
        │   └── docker-buildx-plugin_0.9.1-0_arm64.deb
        ├── ppc64le
        │   └── docker-buildx-plugin_0.9.1-0_ppc64el.deb
        ├── riscv64
        │   └── docker-buildx-plugin_0.9.1-0_riscv64.deb
        └── s390x
            └── docker-buildx-plugin_0.9.1-0_s390x.deb

194 directories, 144 files

Contributing

Want to contribute? Awesome! You can find information about contributing to this project in the CONTRIBUTING.md