Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,16 @@ apk deb rpm static:

.PHONY: apk-%
apk-%:
$(MAKE) -C pkg/$* $(foreach release,$(PKG_APK_RELEASES),pkg-cross-apk-$(release))
$(MAKE) -C pkg/$* $(foreach release,$(PKG_APK_RELEASES),build-cross-apk-$(release))

.PHONY: deb-%
deb-%:
$(MAKE) -C pkg/$* $(foreach release,$(PKG_DEB_RELEASES),pkg-cross-deb-$(release))
$(MAKE) -C pkg/$* $(foreach release,$(PKG_DEB_RELEASES),build-cross-deb-$(release))

.PHONY: rpm-%
rpm-%:
$(MAKE) -C pkg/$* $(foreach release,$(PKG_RPM_RELEASES),pkg-cross-rpm-$(release))
$(MAKE) -C pkg/$* $(foreach release,$(PKG_RPM_RELEASES),build-cross-rpm-$(release))

.PHONY: static-%
static-%:
$(MAKE) -C pkg/$* pkg-cross-static
$(MAKE) -C pkg/$* build-cross-static
168 changes: 166 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,175 @@
## About

This repository creates packages (apk, deb, rpm, static) for various projects
that can be found in [pkg](pkg) folder.
and are published as a Docker image on Docker Hub.

## Usage

_TODO_
`vars.mk` contains variables that will be used by the main `Makefile` and
also across projects in [pkg](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:

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

Each [project](pkg) has also its own `Makefile`, `Dockerfile` and bake
definition to build and push packages:

```console
# build all packages for buildx v0.9.1
$ cd pkg/buildx/
$ BUILD_VERSION=v0.9.1 make pkg
# Push image to dockereng/packaging:buildx-v0.9.1
$ 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](https://github.com/crazy-max/undock)
to extract packages:

```shell
$ undock --wrap --rm-dist --all dockereng/packaging:buildx-v0.9.1 ./bin/undock
```

<details>
<summary>tree ./bin/undock</summary>

```
./bin/undock
├── 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-centos7.x86_64.rpm
│ │ ├── docker-buildx-plugin-0.9.1-centos8.x86_64.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora33.x86_64.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora34.x86_64.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora35.x86_64.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora36.x86_64.rpm
│ │ ├── docker-buildx-plugin_0.9.1-debian10_amd64.deb
│ │ ├── docker-buildx-plugin_0.9.1-debian11_amd64.deb
│ │ ├── docker-buildx-plugin_0.9.1-r0_x86_64.apk
│ │ ├── docker-buildx-plugin_0.9.1-raspbian10_amd64.deb
│ │ ├── docker-buildx-plugin_0.9.1-raspbian11_amd64.deb
│ │ ├── docker-buildx-plugin_0.9.1-ubuntu1804_amd64.deb
│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2004_amd64.deb
│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2204_amd64.deb
│ │ └── docker-buildx-plugin_0.9.1.tgz
│ ├── arm
│ │ ├── v6
│ │ │ ├── docker-buildx-plugin-0.9.1-centos7.armv6hl.rpm
│ │ │ ├── docker-buildx-plugin-0.9.1-centos8.armv6hl.rpm
│ │ │ ├── docker-buildx-plugin-0.9.1-fedora33.armv6hl.rpm
│ │ │ ├── docker-buildx-plugin-0.9.1-fedora34.armv6hl.rpm
│ │ │ ├── docker-buildx-plugin-0.9.1-fedora35.armv6hl.rpm
│ │ │ ├── docker-buildx-plugin-0.9.1-fedora36.armv6hl.rpm
│ │ │ ├── docker-buildx-plugin_0.9.1-debian10_armel.deb
│ │ │ ├── docker-buildx-plugin_0.9.1-debian11_armel.deb
│ │ │ ├── docker-buildx-plugin_0.9.1-r0_armhf.apk
│ │ │ ├── docker-buildx-plugin_0.9.1-raspbian10_armel.deb
│ │ │ ├── docker-buildx-plugin_0.9.1-raspbian11_armel.deb
│ │ │ ├── docker-buildx-plugin_0.9.1-ubuntu1804_armel.deb
│ │ │ ├── docker-buildx-plugin_0.9.1-ubuntu2004_armel.deb
│ │ │ ├── docker-buildx-plugin_0.9.1-ubuntu2204_armel.deb
│ │ │ └── docker-buildx-plugin_0.9.1.tgz
│ │ └── v7
│ │ ├── docker-buildx-plugin-0.9.1-centos7.armv7hl.rpm
│ │ ├── docker-buildx-plugin-0.9.1-centos8.armv7hl.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora33.armv7hl.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora34.armv7hl.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora35.armv7hl.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora36.armv7hl.rpm
│ │ ├── docker-buildx-plugin_0.9.1-debian10_armhf.deb
│ │ ├── docker-buildx-plugin_0.9.1-debian11_armhf.deb
│ │ ├── docker-buildx-plugin_0.9.1-r0_armv7.apk
│ │ ├── docker-buildx-plugin_0.9.1-raspbian10_armhf.deb
│ │ ├── docker-buildx-plugin_0.9.1-raspbian11_armhf.deb
│ │ ├── docker-buildx-plugin_0.9.1-ubuntu1804_armhf.deb
│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2004_armhf.deb
│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2204_armhf.deb
│ │ └── docker-buildx-plugin_0.9.1.tgz
│ ├── arm64
│ │ ├── docker-buildx-plugin-0.9.1-centos7.aarch64.rpm
│ │ ├── docker-buildx-plugin-0.9.1-centos8.aarch64.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora33.aarch64.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora34.aarch64.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora35.aarch64.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora36.aarch64.rpm
│ │ ├── docker-buildx-plugin_0.9.1-debian10_arm64.deb
│ │ ├── docker-buildx-plugin_0.9.1-debian11_arm64.deb
│ │ ├── docker-buildx-plugin_0.9.1-r0_aarch64.apk
│ │ ├── docker-buildx-plugin_0.9.1-raspbian10_arm64.deb
│ │ ├── docker-buildx-plugin_0.9.1-raspbian11_arm64.deb
│ │ ├── docker-buildx-plugin_0.9.1-ubuntu1804_arm64.deb
│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2004_arm64.deb
│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2204_arm64.deb
│ │ └── docker-buildx-plugin_0.9.1.tgz
│ ├── ppc64le
│ │ ├── docker-buildx-plugin-0.9.1-centos7.ppc64le.rpm
│ │ ├── docker-buildx-plugin-0.9.1-centos8.ppc64le.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora33.ppc64le.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora34.ppc64le.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora35.ppc64le.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora36.ppc64le.rpm
│ │ ├── docker-buildx-plugin_0.9.1-debian10_ppc64el.deb
│ │ ├── docker-buildx-plugin_0.9.1-debian11_ppc64el.deb
│ │ ├── docker-buildx-plugin_0.9.1-r0_ppc64le.apk
│ │ ├── docker-buildx-plugin_0.9.1-raspbian10_ppc64el.deb
│ │ ├── docker-buildx-plugin_0.9.1-raspbian11_ppc64el.deb
│ │ ├── docker-buildx-plugin_0.9.1-ubuntu1804_ppc64el.deb
│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2004_ppc64el.deb
│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2204_ppc64el.deb
│ │ └── docker-buildx-plugin_0.9.1.tgz
│ ├── riscv64
│ │ ├── docker-buildx-plugin-0.9.1-centos7.riscv64.rpm
│ │ ├── docker-buildx-plugin-0.9.1-centos8.riscv64.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora33.riscv64.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora34.riscv64.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora35.riscv64.rpm
│ │ ├── docker-buildx-plugin-0.9.1-fedora36.riscv64.rpm
│ │ ├── docker-buildx-plugin_0.9.1-debian10_riscv64.deb
│ │ ├── docker-buildx-plugin_0.9.1-debian11_riscv64.deb
│ │ ├── docker-buildx-plugin_0.9.1-r0_riscv64.apk
│ │ ├── docker-buildx-plugin_0.9.1-raspbian10_riscv64.deb
│ │ ├── docker-buildx-plugin_0.9.1-raspbian11_riscv64.deb
│ │ ├── docker-buildx-plugin_0.9.1-ubuntu1804_riscv64.deb
│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2004_riscv64.deb
│ │ ├── docker-buildx-plugin_0.9.1-ubuntu2204_riscv64.deb
│ │ └── docker-buildx-plugin_0.9.1.tgz
│ └── s390x
│ ├── docker-buildx-plugin-0.9.1-centos7.s390x.rpm
│ ├── docker-buildx-plugin-0.9.1-centos8.s390x.rpm
│ ├── docker-buildx-plugin-0.9.1-fedora33.s390x.rpm
│ ├── docker-buildx-plugin-0.9.1-fedora34.s390x.rpm
│ ├── docker-buildx-plugin-0.9.1-fedora35.s390x.rpm
│ ├── docker-buildx-plugin-0.9.1-fedora36.s390x.rpm
│ ├── docker-buildx-plugin_0.9.1-debian10_s390x.deb
│ ├── docker-buildx-plugin_0.9.1-debian11_s390x.deb
│ ├── docker-buildx-plugin_0.9.1-r0_s390x.apk
│ ├── docker-buildx-plugin_0.9.1-raspbian10_s390x.deb
│ ├── docker-buildx-plugin_0.9.1-raspbian11_s390x.deb
│ ├── docker-buildx-plugin_0.9.1-ubuntu1804_s390x.deb
│ ├── docker-buildx-plugin_0.9.1-ubuntu2004_s390x.deb
│ ├── docker-buildx-plugin_0.9.1-ubuntu2204_s390x.deb
│ └── docker-buildx-plugin_0.9.1.tgz
└── windows
├── amd64
│ └── docker-buildx-plugin_0.9.1.zip
└── arm64
└── docker-buildx-plugin_0.9.1.zip

15 directories, 109 files
```
</details>

## Contributing

Expand Down
5 changes: 4 additions & 1 deletion pkg/buildx/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,15 @@

include ../../vars.mk

BASEDIR ?= $(CURDIR)
DESTDIR ?= $(BASEDIR)/bin/local
BAKE_TARGET ?= pkg

word-hypen = $(word $2,$(subst -, ,$1))

$(info $$BASEDIR = $(BASEDIR))
$(info $$BUILDX_REPO = $(BUILDX_REPO))
$(info $$BUILDX_VERSION = $(BUILDX_VERSION))

.PHONY: pkg
pkg: pkg-apk pkg-deb pkg-rpm pkg-static

Expand Down
5 changes: 4 additions & 1 deletion pkg/compose/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,15 @@

include ../../vars.mk

BASEDIR ?= $(CURDIR)
DESTDIR ?= $(BASEDIR)/bin/local
BAKE_TARGET ?= pkg

word-hypen = $(word $2,$(subst -, ,$1))

$(info $$BASEDIR = $(BASEDIR))
$(info $$COMPOSE_REPO = $(COMPOSE_REPO))
$(info $$COMPOSE_VERSION = $(COMPOSE_VERSION))

.PHONY: pkg
pkg: pkg-apk pkg-deb pkg-rpm pkg-static

Expand Down
2 changes: 1 addition & 1 deletion vars.mk
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ PKG_APK_RELEASES ?= r0
PKG_DEB_RELEASES ?= debian10 debian11 ubuntu1804 ubuntu2004 ubuntu2204 raspbian10 raspbian11
PKG_RPM_RELEASES ?= centos7 centos8 fedora33 fedora34 fedora35 fedora36

export BASEDIR = $(CURDIR)
export BASEDIR ?= $(CURDIR)
export PKG_VENDOR ?= Docker
export PKG_PACKAGER ?= Docker <support@docker.com>

Expand Down