+
Skip to content

Issues/3466 Move away from Gitpod #3569

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 50 commits into
base: dev
Choose a base branch
from

Conversation

JulianFlesch
Copy link
Contributor

@JulianFlesch JulianFlesch commented May 14, 2025

Description

Addresses the suggestions in issue 3466 to move away from gitpod and towards devcontainer for Github codespaces.

PR checklist

  • This comment contains a description of changes (with reason)
  • CHANGELOG.md is updated
  • If you've fixed a bug or added code that should be tested, add tests!
  • Documentation in docs is updated

@JulianFlesch JulianFlesch changed the title [DRAFT] Issues/3466 gitpod [DRAFT] Issues/3466 Move away from Gitpod May 14, 2025
@JulianFlesch
Copy link
Contributor Author

Note: This still uses (a newer) gitpod base image and thus also the gitpod user.

@JulianFlesch JulianFlesch marked this pull request as ready for review May 20, 2025 10:13
@JulianFlesch JulianFlesch changed the title [DRAFT] Issues/3466 Move away from Gitpod Issues/3466 Move away from Gitpod May 20, 2025
Copy link

codecov bot commented May 20, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 76.48%. Comparing base (75d8c83) to head (c5dd2d2).
Report is 15 commits behind head on dev.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ewels
Copy link
Member

ewels commented May 27, 2025

Bit late to the party here, but note that we went through this process when switching to Devcontainers for the Nextflow Training. In the end we went all-in on the devcontainer spec and stopped thinking about base images entirely.

See the current Devcontainer spec: https://github.com/nextflow-io/training/blob/master/.devcontainer/codespaces-dev/devcontainer.json

  • Uses mcr.microsoft.com/devcontainers/base:ubuntu the simplest base Devcontainer image
  • Uses devcontainer features instead of Docker layers for stuff like Java, conda etc.
  • Uses local features (basically bash scripts) to install stuff
  • Bungs all of this into a pre-build container image for faster start-up times (workflow)

I'm not sure that we need anything in the devcontainer image that we haven't already sorted in the training image? We already have Nextflow, conda, nf-core/tools etc etc. The simplest approach would be to forget about image entirely and just use this devcontainer spec file with the training base image but mounting a different repo / workdir.

If the image being called "training" feels off then we could always move that. Feels more sensible to share effort on the setup there rather than reinventing the wheel though..

@JulianFlesch
Copy link
Contributor Author

@ewels Yep, devcontainer features are great! We are using those and docker-in-docker works like a charm on codespaces 🚀
(We are now using mcr.microsoft.com/devcontainers/python:3.11)
I can add conda and nextflow as a feature as well, like it was done over at nextflow.io/testcontainers.

Just using the devcontainer from nextflow.io/training would not install the most recent version of tools after a merge, which is the purpose of this exercise, no?

But we can use their base image and reinstall tool with dev dependencies and --editable flag set?

@ewels ewels added this to the 3.4.0 milestone May 27, 2025
@JulianFlesch
Copy link
Contributor Author

Our image for use with devcontainer is now based on ghcr.io/nextflow-io/training:latest to remove a lot of redundancy and hopefully maintenance effort. The setup.sh had to be added to make that base image work.

The devcontainer.Dockerfile sets up the image for use with the non-root user vscode, installs apptainer and most importantly copies the current state of the tools repository for installation.

If we don't need the unprivileged user (the tutorial image just uses root) and the repository can be mounted into the container, we could move those things to the setup.sh script and drop our own devcontainer image entirely.

@mashehu
Copy link
Contributor

mashehu commented Jun 16, 2025

any update on this? I keep pointing people to codespaces and then the run into docker-in-docker issues...

@mahesh-panchal
Copy link
Member

I was messing around using pixi in a container to install needed tools. Seems to work OK. I haven't got it fluid yet though.

https://github.com/mahesh-panchal/Nextflow_sandbox

Feel free to play around. Just FYI.

@mashehu mashehu modified the milestones: 3.4.0, 3.5.0 Jul 8, 2025
# docker build . -t devcontainer:local -f nf_core/devcontainer/devcontainer.Dockerfile

# Uses mcr.microsoft.com/devcontainers/base:ubuntu
FROM ghcr.io/nextflow-io/training:latest
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pin the version!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载