Linux – How do I build an APK for Alpine Linux in a Docker container?

How do I build an APK for Alpine Linux in a Docker container?… here is a solution to the problem.

How do I build an APK for Alpine Linux in a Docker container?

I’ve been trying to build an APK package for Alpine using Docker containers and abuild tools. It gives the following error:

>>> hello: Building shared/hello 0.1.0-r0 (using abuild 3.8.0_rc4-r0) started Mon, 27 Sep 2021 13:44:06 +0000
>>> hello: Checking sanity of /shared/hello/APKBUILD...
>>> WARNING: hello: No maintainer
>>> hello: Analyzing dependencies...
>>> hello: Installing for build: build-base
WARNING: Ignoring /home/apk/packages//shared: No such file or directory
(1/1) Installing .makedepends-hello (20210927.134407)
OK: 280 MiB in 67 packages
>>> hello: Cleaning up srcdir
>>> hello: Cleaning up pkgdir
>>> hello: Checking sha512sums...
hello: OK
>>> hello: Entering fakeroot...
>>> hello*: Running postcheck for hello
find: /shared/hello/pkg/hello: No such file or directory
find: /shared/hello/pkg/hello: No such file or directory
find: /shared/hello/pkg/hello: No such file or directory
find: /shared/hello/pkg/hello: No such file or directory
find: /shared/hello/pkg/hello: No such file or directory
>>> hello*: Preparing package hello...
>>> ERROR: hello*: Missing /shared/hello/pkg/hello
>>> ERROR: hello: rootpkg failed
>>> hello: Uninstalling dependencies...
(1/1) Purging .makedepends-hello (20210927.134407)
OK: 280 MiB in 66 packages

MY APKBUILD LOOKS LIKE:

pkgname="hello"
pkgver="0.1.0"
pkgrel="0"
pkgdesc="Hello World"
url="https://example.com"
arch="noarch"
license="COPYING"
source=".. /dst/hello"
depends=""

check() {
    :
}

package() {
    :
}

I’VE PUT THE APKBUILD FILE INTO ITS OWN FOLDER CALLED “HELLO”, WHICH IS IN A SEPARATE FOLDER CALLED “DST”.

Solution

I figured it out :

THIS IS A VERY SIMPLE FIX FOR THE APKBUILD FILE

pkgname="hello"
pkgver="0.1.0"
pkgrel="0"
pkgdesc="Hello World"
url="https://example.com"
arch="noarch"
license="COPYING"
source=".. /dst/hello"
depends=""

check() {
    :
}

package() {
    # Add this line to create the $pkgdir folder
    mkdir -p $pkgdir
}

Related Problems and Solutions