Giter Site home page Giter Site logo

wlisac / swift-on-balena Goto Github PK

View Code? Open in Web Editor NEW
174.0 8.0 7.0 186 KB

Docker images for Swift on Raspberry Pi and other ARM devices from balena's base images.

License: MIT License

Dockerfile 86.26% Swift 13.74%
swift docker balena balenacloud raspberrypi raspberry-pi-zero raspberry-pi-3 iot armv6 armv7

swift-on-balena's Introduction

Swift on Balena

Welcome to Swift on Balena – a set of Docker images for Swift on Raspberry Pi and other ARM devices. These images are based on balena's IoT focused Docker images and make it easy to build and run Swift apps on ARM.

Getting Started

Use this sample project to get started with Swift and Docker on your Raspberry Pi.

Latest Releases

Device Based Images

Device based images are a great way to get started with Swift on a specific device type.

Device Architecture Swift Docker Image
Raspberry Pi (v1 or Zero) armv6 5.1 wlisac/raspberry-pi-swift:5.1-build
Raspberry Pi Zero 2 W
(64-bit OS)
aarch64 5.5.1 wlisac/raspberrypi0-2w-64-swift:5.5.1-build
Raspberry Pi 2 armv7hf 5.1 wlisac/raspberry-pi2-swift:5.1-build
Raspberry Pi 3 armv7hf 5.1 wlisac/raspberrypi3-swift:5.1-build
Raspberry Pi 3 (64-bit OS) aarch64 5.5.1 wlisac/raspberrypi3-64-swift:5.5.1-build
Raspberry Pi 4 (64-bit OS) aarch64 5.5.1 wlisac/raspberrypi4-64-swift:5.5.1-build
Generic ARMv7-a HF armv7hf 5.1 wlisac/generic-armv7ahf-swift:5.1-build
Generic AARCH64 (ARMv8) aarch64 5.5.1 wlisac/generic-aarch64-swift:5.5.1-build

Architecture Based Images

Architecture based images are useful when building an image for multiple device types with a common architecture.

Device Architecture Swift Docker Image
Raspberry Pi (v1 or Zero) armv6 5.1 wlisac/rpi-swift:5.1-build
Raspberry Pi 2
Raspberry Pi 3
Generic ARMv7-a HF
armv7hf 5.1 wlisac/armv7hf-swift:5.1-build
Raspberry Pi Zero 2 W (64-bit OS)
Raspberry Pi 3 (64-bit OS)
Raspberry Pi 4 (64-bit OS)
Generic AARCH64 (ARMv8)
aarch64 5.5.1 wlisac/aarch64-swift:5.5.1-build

Image Variants

There are several image variants available depending on hardware, Linux distribution, and Swift version.

  • Devices
    • Raspberry Pi (v1 or Zero)
    • Raspberry Pi Zero 2 W (64-bit OS)
    • Raspberry Pi 2
    • Raspberry Pi 3
    • Raspberry Pi 3 (64-bit OS)
    • Raspberry Pi 4 (64-bit OS)
    • Generic ARMv7-a HF
    • Generic AARCH64 (ARMv8)
  • Linux Distributions
    • Debian: Stretch
    • Ubuntu: Bionic and Xenial
  • Swift Versions
    • Swift 4 (4.2.3)
    • Swift 5 (5.5.1, 5.1, 5.0.1, 5.0)
  • build and run image variants for multi-stage builds

Image Naming Scheme

The image naming scheme for Swift on Balena supports a subset of balena's image naming scheme and follows the pattern below.

wlisac/<hardware>-<distro>-swift:<swift_version>-<distro_version>-(build|run)

Image Names

  • <hardware> is either the device type or architecture and is required. See the device list for available device names and architecture names.
  • <distro> is the Linux distribution. This is optional and will usually default to Debian, but may fall-back to Ubuntu if a Debian variant is not available.

Image Tags

  • <swift_version> is the version of Swift and is required.
  • <distro_version> is the version of the Linux distribution and is required if a distribution is specified in the image name.
  • (build|run) specifies either the build or run image variant and is required. The build variant includes the Swift compiler, Swift Package Manager, and other tools needed to build and run a Swift app from source. The run variant is much lighter-weight, does not include the Swift compiler, and is designed to run an already built Swift app. The build and run image variants can be used together in a multi-stage Dockerfile to produce a smaller image that's ready for deployment.

Examples

wlisac/raspberrypi3-swift:5.1-build

  • <hardware>: raspberrypi3 – the Raspberry Pi 3 device type
  • <distro>: omitted – defaulted to Debian
  • <swift_version>: 5.1 – specifies Swift version 5.1
  • <distro_version>: omitted – defaulted to Stretch
  • (build|run): build – specifies the build variant for building a Swift app from source

wlisac/raspberrypi3-ubuntu-swift:4.2.3-bionic-run

  • <hardware>: raspberrypi3 – the Raspberry Pi 3 device type
  • <distro>: ubuntu
  • <swift_version>: 4.2.3 – specifies Swift version 4.2.3
  • <distro_version>: bionic – Ubuntu 18.04
  • (build|run): run – specifies the run variant for running an already built Swift app

wlisac/armv7hf-swift:5.1-build

  • <hardware>: armv7hf – the armv7hf architecture type
  • <distro>: omitted – defaulted to Debian
  • <swift_version>: 5.1 – specifies Swift version 5.1
  • <distro_version>: omitted – defaulted to Stretch
  • (build|run): build – specifies the build variant for building a Swift app from source

Acknowledgments

Swift on Balena is possible because of the amazing work done by the Swift on ARM community and the projects below.

Join the community in the swift-arm Slack channel.

swift-on-balena's People

Contributors

wlisac avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

swift-on-balena's Issues

list supported versions

It would be nice if you could list supported versions of Swift someplace. I was able to glean that the 4.2.x that you support is 4.2.3 by going here but it was non-obvious.

I just wasn't up on what point release Swift 4.2 was at, is all.

5.2 images and 5.3 nightlies

I don't know how hard would it be to provide 5.2 images, and definitely I wouldn't expect 5.3 nightlies to be uploaded regularly, but at least it would make sense to maintain a Dockerfile for 5.3 if possible, similarly to what upstream does here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.