Running Dagger Pipelines on Sourcehut
I was excited to get Dagger running on sourcehut this week because it combines a few of my favorite things. Dagger, of course, the place where I work. And sourcehut, a bad ass team of indie hackers, led by Drew DeVault on a mission to create a truly open home for open source projects on the web. It is an entire suite of services including git hosting, issue tracker, wiki, mailing list, static site hosting, and of course a fully functional CI build system.
While sourcehut provides a great general purpose CI build system, it does not yet have any caching provided by default. This means that for nontrivial projects you may find yourself spending a ton of time redownloading dependencies every time you run a build. This makes sourcehut the perfect fit for Dagger Cloud since it provides caching out of the box.
I attempted to get a simple POC up and running using the early release
of Dagger modules. I initially tried to get this working on the
alpine/latest image, but I ran into some roadblocks because Docker in
Docker was complaining about some networking permissions. I was happy to
see that this works pretty much out of the box using the provided
ubuntu/lts image.
All the code shared in this post is available in this demo repo.
image: ubuntu/lts
secrets:
- 234d6ffa-82da-445b-ab32-8b388c51da4d
shell: true
tasks:
- install_docker: |
sudo apt update
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
sudo usermod -aG docker $USER
- install_dagger: |
cd /usr/local && { curl -L https://dl.dagger.io/dagger/install.sh | sudo sh; cd -; }
- add_secret_to_env: |
cat << EOF >> .buildenv
export DAGGER_CLOUD_TOKEN=$(cat ~/.dagger_cloud_token)
EOF
- run_dagger: |
cd dagger-demo
pwd
dagger version
dagger call -m ci container-echo --string-arg 'it works!'
- stop_dagger_engine: |
docker stop -t 300 $(docker ps --filter name="dagger-engine-*" -q)
Thank you for reading! Share your thoughts with me on bluesky, mastodon, or via email.
Check out some more stuff to read down below.
Most popular posts this month
- 3 packs
- Coming of Age in the Craw
- Coursera Rails Module 2 Notes
- Growing the CircleCI Community with Discourse
- I sold all my shit
Recent Favorite Blog Posts
This is a collection of the last 8 posts that I bookmarked.
- DEP-18: A proposal for Git-based collaboration in Debian from Optimized by Otto
- [RIDGELINE] No Phones in The Ten-don Shop from Craig Mod — Writer + Photographer
- My next chapter with Mastodon from Mastodon Blog
- How many pillars of observability can you fit on the head of a pin? from charity.wtf
- The Software Essays that Shaped Me from Refactoring English
- Give Your Spouse the Gift of a Couple's Email Domain from mtlynch.io
- Skip the Next iPhone from Articles on Jose M.
- Have smart glasses finally hit an inflection point? from The Torment Nexus
Articles from blogs I follow around the net
Pluralistic: Meta's new top EU regulator is contractually prohibited from hurting Meta's feelings (01 Dec 2025)
Today's links Meta's new top EU regulator is contractually prohibited from saying mean things about Meta: It's one thing to hire an ex-Meta lobbyist, another entirely if she's signed a non-disparagement contract. Hey look at this: Delights…
via Pluralistic: Daily links from Cory Doctorow December 1, 2025Getting Warmer
ESA/Hubble & NASA, ESO/ Lutz Wisotzki et al The early Universe as seen by the MUSE spectrograph on ESO’s Very Large Telescope. So first the Big Bang happens. Everything is incredibly hot and dense; there are photons flying everywhere, but they keep coll…
via Brian Koberlein December 1, 2025Recently
This’ll be the last Recently in 2025. It’s been a decent year for me, a pretty rough year for the rest of the world. I hope, for everyone, that 2026 sees the reversal of some of the current trends. Watching This video from Daniel Yang, who makes spectacular b…
via macwright.com December 1, 2025Generated by openring