This image aims to provide the essential tools for building software in a Slackware environment. It can be used as a service container in a GitHub action.
The image can be pulled from Docker Hub.
docker pull andy5995/slackware-build-essential:15.0
If you're not familiar with any of these, see the pages linked. You may also post a question in the Discussions.
slackware:
runs-on: ubuntu-latest
container: andy5995/slackware-build-essential:15.0
steps:
- uses: actions/checkout@v3
- name: Change default mirror
run: echo "https://mirrors.ocf.berkeley.edu/slackware/slackware64-15.0/" > /etc/slackpkg/mirrors
- name: Install dependencies
run: |
echo n | slackpkg update
echo y | slackpkg install libassuan
#
# Note that in some cases, sbopkg may return 0 on error
# https://github.com/sbopkg/sbopkg/issues/85
sbopkg -r
sbopkg -B -i Pykka -e stop
slapt-get -u
slapt-get --install libX11
- name: Build and test with meson
run: |
meson setup _build
cd _build
meson compile
meson test
If you would like to randomly rotate the mirror used each time:
- name: Change default mirror
run: |
mirror=( \
http://ftp.sunet.se/mirror/slackware.com/slackware64-15.0/ \
http://ftp.tu-chemnitz.de/pub/linux/slackware/slackware64-15.0/ \
http://ftp.mirrorservice.org/sites/ftp.slackware.com/pub/slackware/slackware64-15.0/ \
http://slackware.mirrors.tds.net/pub/slackware/slackware64-15.0/ \
)
echo ${mirror[$(shuf -i 0-3 -n 1)]} > /etc/slackpkg/mirrors
This is a template repository, which means you can create a repository from this repo, then customize the Dockerfile to include all the dependencies your projects needs. You can push your new image directly to Docker Hub after creating a few access tokens.
When you're ready to use the image in your new workflow, simply change the 'container' line (shown in the example workflow above).
docker build -t <name:tag> .
The license included in this repository only applies to the files within this repository; it does not apply to the files retrieved when the image is created, nor to the files contained within the docker image itself.