This repository helps you build both the web and worker arm64 components for Concourse CI - prebuilt Docker images can be found on Docker Hub rdclda/concourse.
| Concourse | git | registry-image |
|---|---|---|
| v7.11.2 | v1.15.0 | v1.9.0 |
Each Docker image includes the CLIs for Linux/Mac/Windows for the Intel platform - they can be downloaded from the Concourse web console.
Copy the example docker-compose.yaml to your Raspberry Pi and update the external IP address setting CONCOURSE_EXTERNAL_URL.
# On your Macbook M1/M2 machine
$ podman-compose up -d
# Login using fly - update your IP here too ;-)
$ export FLY_TARGET=my-m2
$ fly --target=$FLY_TARGET login \
--concourse-url=http://concourse.localtest.me:8080 \
--username=test \
--password=testYou can now access the Concourse web console using http://concourse.localtest.me:8080/.
Follow the steps below if you want to build the images yourself.
- Raspberry Pi 4 with 8Gb of memory (if you want to build
elm) - Docker daemon + Docker CLI (buildx enabled)
- 4Gb of (Docker assigned) memory
- Bash shell
Elm is a build dependency for the Concourse web component, but is not available for arm64 - therefore elm v0.19.1 has been pre-compiled on arm64 and packaged under ./dist within this repository.
The two main reasons to not make the elm native binary compilation part of the Concourse CI build are:
- Docker
buildxfails (crashes) when trying to compile this onamd64platform - Takes too long
In case you want to build elm yourself, follow the steps below:
# Based upon Ubuntu 20.04
# Raspberry Pi 4 with 8Gb memory and SSD storage attached
# Expect build to take up to 3+ hours
apt-get update && apt-get install ghc cabal-install -y
apt-get install git curl -y
git config --global user.email "info@rdc.pt" && \
git config --global user.name "Robin Daniel Consultants, Lda."
mkdir -p /tmp/build && cd /tmp/build
git clone https://github.com/dmy/elm-raspberry-pi.git ./elm-raspberry-pi
cd ./elm-raspberry-pi && git checkout tags/20200611
cd /tmp/build
git clone https://github.com/elm/compiler.git ./elm/compiler
cd ./elm/compiler && git checkout tags/0.19.1
git am -s /tmp/build/elm-raspberry-pi/patches/elm-0.19.1.patch
cabal new-update
cabal new-configure --ghc-option=-split-sections
cabal new-buildAfter the last step, the build will output the elm binary path.
You will find under the ./build-specs directory the available configurations for building Concourse CI for arm64.
# Kick off the build - specify the concourse version you want to build
# Using Intel / Docker Compose:
./build.sh 7.9.1
# Using ARM64 (M1, M2) and podman:
./build_podman_arm64.sh 7.9.1The generated Docker image will be pushed to the specified repository defined in the .env file.
