AldaronLau
AldaronLau

Reputation: 1194

How to Build APK for Alpine Linux In Docker Container?

I've been trying to build an APK package for Alpine using a Docker container and the abuild tool. 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 have placed the APKBUILD file into it's own folder called "hello", the "hello" shellscript is located in a separate folder called "dst".

Upvotes: 4

Views: 2247

Answers (1)

AldaronLau
AldaronLau

Reputation: 1194

I figured it out:

It's a really simple fix to 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
}

Upvotes: 4

Related Questions