Skip to content

Dockerfile for building a Slackware image with essential build tools

License

Notifications You must be signed in to change notification settings

andy5995/docker-slackware-build-essential

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Docker Image CI

Slackware Build Essential Docker Image

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

Included package managers

If you're not familiar with any of these, see the pages linked. You may also post a question in the Discussions.

Example for use in a GitHub workflow

  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

Customize

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).

Projects using this in their CI:

Building the Image Locally

docker build -t <name:tag> .

LICENSE

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.