From 80b018200748f972dadca1ae0d0b91944db0e87c Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Wed, 14 May 2025 11:00:29 +0200 Subject: [PATCH 01/79] Renaming Dockerfile and location. Changing to building the Dockerfile locally for now --- .devcontainer/devcontainer.json | 4 +++- .../devcontainer.Dockerfile} | 0 2 files changed, 3 insertions(+), 1 deletion(-) rename nf_core/{gitpod/gitpod.Dockerfile => devcontainer/devcontainer.Dockerfile} (100%) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index fa1bfca649..1cd8533a74 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,8 @@ { "name": "nfcore", - "image": "nfcore/gitpod:latest", + "build": { + "dockerfile": "../nf_core/devcontainer/devcontainer.Dockerfile" + }, "postCreateCommand": "python -m pip install --upgrade -r ../requirements-dev.txt -e ../ && pre-commit install --install-hooks", "remoteUser": "gitpod", "runArgs": ["--privileged"], diff --git a/nf_core/gitpod/gitpod.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile similarity index 100% rename from nf_core/gitpod/gitpod.Dockerfile rename to nf_core/devcontainer/devcontainer.Dockerfile From 7a8cebdd2d7e133531165816d66e1b86ce48f7b3 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Wed, 14 May 2025 13:53:27 +0200 Subject: [PATCH 02/79] change Container user. Change base Image for devcontainer --- .devcontainer/devcontainer.json | 2 +- nf_core/devcontainer/devcontainer.Dockerfile | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 1cd8533a74..dd2ac8128e 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -4,7 +4,7 @@ "dockerfile": "../nf_core/devcontainer/devcontainer.Dockerfile" }, "postCreateCommand": "python -m pip install --upgrade -r ../requirements-dev.txt -e ../ && pre-commit install --install-hooks", - "remoteUser": "gitpod", + "remoteUser": "nfcore-user", "runArgs": ["--privileged"], // Configure tool-specific properties. diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 2af42974f6..52ab69373b 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -2,7 +2,7 @@ # docker build -t gitpod:test -f nf_core/gitpod/gitpod.Dockerfile . # See https://docs.renovatebot.com/docker/#digest-pinning for why a digest is used. -FROM gitpod/workspace-base@sha256:7f35e401405c38ebc1185dfc3d6c066f73a524e8b86641453ea4690cc5c24fb6 +FROM mcr.microsoft.com/devcontainers/python:0-3.11-bullseye USER root @@ -32,15 +32,17 @@ RUN apt-get update --quiet && \ # Set PATH for Conda ENV PATH="/opt/conda/bin:$PATH" +# Set our Username +ENV CONTAINER_USER="nfcore-user" + # Add the nf-core source files to the image COPY . /usr/src/nf_core WORKDIR /usr/src/nf_core # Change ownership for gitpod -RUN chown -R gitpod:gitpod /opt/conda /usr/src/nf_core +RUN chown -R ${CONTAINER_USER}:${CONTAINER_USER} /opt/conda /usr/src/nf_core +USER ${CONTAINER_USER} -# Change user to gitpod -USER gitpod # Install nextflow, nf-core, nf-test, and other useful tools RUN conda config --add channels bioconda && \ conda config --add channels conda-forge && \ From 5fd706a4489e297cc1515f6b5818f88cd00fb156 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Wed, 14 May 2025 14:32:33 +0200 Subject: [PATCH 03/79] Remove installation of apptainer via apt-get because of 404 from ppa --- nf_core/devcontainer/devcontainer.Dockerfile | 3 --- 1 file changed, 3 deletions(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 52ab69373b..d46709046f 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -20,9 +20,6 @@ RUN apt-get update --quiet && \ tree \ graphviz \ software-properties-common && \ - add-apt-repository -y ppa:apptainer/ppa && \ - apt-get update --quiet && \ - apt-get install --quiet --yes apptainer && \ wget --quiet https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh && \ bash Miniforge3-Linux-x86_64.sh -b -p /opt/conda && \ rm Miniforge3-Linux-x86_64.sh && \ From 0d6e6a541a82750e7b29102c54d0c7da9d1556fb Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Wed, 14 May 2025 14:49:28 +0200 Subject: [PATCH 04/79] Create unprivileged user --- .devcontainer/devcontainer.json | 2 +- nf_core/devcontainer/devcontainer.Dockerfile | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index dd2ac8128e..75395f60c3 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -4,7 +4,7 @@ "dockerfile": "../nf_core/devcontainer/devcontainer.Dockerfile" }, "postCreateCommand": "python -m pip install --upgrade -r ../requirements-dev.txt -e ../ && pre-commit install --install-hooks", - "remoteUser": "nfcore-user", + "remoteUser": "nemo", "runArgs": ["--privileged"], // Configure tool-specific properties. diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index d46709046f..e8caa3976c 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -29,16 +29,13 @@ RUN apt-get update --quiet && \ # Set PATH for Conda ENV PATH="/opt/conda/bin:$PATH" -# Set our Username -ENV CONTAINER_USER="nfcore-user" - # Add the nf-core source files to the image COPY . /usr/src/nf_core WORKDIR /usr/src/nf_core -# Change ownership for gitpod -RUN chown -R ${CONTAINER_USER}:${CONTAINER_USER} /opt/conda /usr/src/nf_core -USER ${CONTAINER_USER} +RUN useradd -mU nemo +RUN chown -R nemo:nemo /opt/conda /usr/src/nf_core +USER nemo # Install nextflow, nf-core, nf-test, and other useful tools RUN conda config --add channels bioconda && \ From be2996e68e37559118616f0e6cd9188da1017b7c Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Wed, 14 May 2025 14:53:10 +0200 Subject: [PATCH 05/79] Change git workflow for container creation and use the correct container. --- .devcontainer/devcontainer.json | 4 +--- .github/workflows/push_dockerhub_dev.yml | 6 +++--- .github/workflows/push_dockerhub_release.yml | 10 +++++----- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 75395f60c3..08feb329c6 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,8 +1,6 @@ { "name": "nfcore", - "build": { - "dockerfile": "../nf_core/devcontainer/devcontainer.Dockerfile" - }, + "image": "nfcore/tools-devcontainer", "postCreateCommand": "python -m pip install --upgrade -r ../requirements-dev.txt -e ../ && pre-commit install --install-hooks", "remoteUser": "nemo", "runArgs": ["--privileged"], diff --git a/.github/workflows/push_dockerhub_dev.yml b/.github/workflows/push_dockerhub_dev.yml index 6409335ac7..25a5d192b1 100644 --- a/.github/workflows/push_dockerhub_dev.yml +++ b/.github/workflows/push_dockerhub_dev.yml @@ -28,11 +28,11 @@ jobs: - name: Build nfcore/tools:dev docker image run: docker build --no-cache . -t nfcore/tools:dev - - name: Build nfcore/gitpod:dev docker image - run: docker build --no-cache . --file nf_core/gitpod/gitpod.Dockerfile -t nfcore/gitpod:dev + - name: Build nfcore/tools-devcontainer:dev docker image + run: docker build --no-cache . --file nf_core/devcontainer/devcontainer.Dockerfile -t nfcore/tools-devcontainer:dev - name: Push Docker images to DockerHub (dev) run: | echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin docker push nfcore/tools:dev - docker push nfcore/gitpod:dev + docker push nfcore/tools-devcontainer:dev diff --git a/.github/workflows/push_dockerhub_release.yml b/.github/workflows/push_dockerhub_release.yml index d29b03b687..e3fdbfb8d1 100644 --- a/.github/workflows/push_dockerhub_release.yml +++ b/.github/workflows/push_dockerhub_release.yml @@ -28,8 +28,8 @@ jobs: - name: Build nfcore/tools:latest docker image run: docker build --no-cache . -t nfcore/tools:latest - - name: Build nfcore/gitpod:latest docker image - run: docker build --no-cache . --file nf_core/gitpod/gitpod.Dockerfile -t nfcore/gitpod:latest + - name: Build nfcore/tools-devcontainer:latest docker image + run: docker build --no-cache . --file nf_core/devcontainer/devcontainer.Dockerfile -t nfcore/tools-devcontainer:latest - name: Push Docker images to DockerHub (release) run: | @@ -37,6 +37,6 @@ jobs: docker push nfcore/tools:latest docker tag nfcore/tools:latest nfcore/tools:${{ github.event.release.tag_name }} docker push nfcore/tools:${{ github.event.release.tag_name }} - docker push nfcore/gitpod:latest - docker tag nfcore/gitpod:latest nfcore/gitpod:${{ github.event.release.tag_name }} - docker push nfcore/gitpod:${{ github.event.release.tag_name }} + docker push nfcore/tools-devcontainer:latest + docker tag nfcore/tools-devcontainer:latest nfcore/tools-devcontainer:${{ github.event.release.tag_name }} + docker push nfcore/tools-devcontainer:${{ github.event.release.tag_name }} From 53dd172dbeb7ea76521034f3527dcf925e21b4a6 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Wed, 14 May 2025 14:56:57 +0200 Subject: [PATCH 06/79] Update instruction to build locally for testing --- nf_core/devcontainer/devcontainer.Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index e8caa3976c..06bad66594 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -1,5 +1,5 @@ -# Test build locally before making a PR -# docker build -t gitpod:test -f nf_core/gitpod/gitpod.Dockerfile . +# Test build locally before making a PR (from project root directory) +# docker build . -t tools-devcontainer:local -f nf_core/devcontainer/devcontainer.Dockerfile # See https://docs.renovatebot.com/docker/#digest-pinning for why a digest is used. FROM mcr.microsoft.com/devcontainers/python:0-3.11-bullseye From dd6ddc3e53393220db29a2027aeb2c97f71f1007 Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Wed, 14 May 2025 13:02:19 +0000 Subject: [PATCH 07/79] [automated] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 60afb1faab..6c01ffdcf1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -77,6 +77,7 @@ - chore(deps): update python:3.12-slim docker digest to bae1a06 ([#3558](https://github.com/nf-core/tools/pull/3558)) - Update CI to test template pipelines with nf-test ([#3559](https://github.com/nf-core/tools/pull/3559)) - chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.11.9 ([#3563](https://github.com/nf-core/tools/pull/3563)) +- [DRAFT] Issues/3466 gitpod ([#3569](https://github.com/nf-core/tools/pull/3569)) ## [v3.2.1 - Pewter Pangolin Patch](https://github.com/nf-core/tools/releases/tag/3.2.1) - [2025-04-29] From 464d3bdd9ded9ae7da1053f35c19d46886cbc851 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Wed, 14 May 2025 15:44:21 +0200 Subject: [PATCH 08/79] More descriptive changelog entry --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c01ffdcf1..aede081f1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -77,7 +77,7 @@ - chore(deps): update python:3.12-slim docker digest to bae1a06 ([#3558](https://github.com/nf-core/tools/pull/3558)) - Update CI to test template pipelines with nf-test ([#3559](https://github.com/nf-core/tools/pull/3559)) - chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.11.9 ([#3563](https://github.com/nf-core/tools/pull/3563)) -- [DRAFT] Issues/3466 gitpod ([#3569](https://github.com/nf-core/tools/pull/3569)) +- Stop using Gitpod in favor of devcontainer for codespaces ([#3569](https://github.com/nf-core/tools/pull/3569)) ## [v3.2.1 - Pewter Pangolin Patch](https://github.com/nf-core/tools/releases/tag/3.2.1) - [2025-04-29] From 2ee5fc1d76850395e336d08b931cc02e38081a86 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 20 May 2025 11:18:39 +0200 Subject: [PATCH 09/79] Change base Image --- nf_core/devcontainer/devcontainer.Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 06bad66594..8749dced3e 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -2,7 +2,8 @@ # docker build . -t tools-devcontainer:local -f nf_core/devcontainer/devcontainer.Dockerfile # See https://docs.renovatebot.com/docker/#digest-pinning for why a digest is used. -FROM mcr.microsoft.com/devcontainers/python:0-3.11-bullseye +#FROM mcr.microsoft.com/devcontainers/python:0-3.11-bullseye +FROM gitpod/workspace-base:2025-05-14-07-50-25 USER root From 776b2c8468caa324fb5af0f9394b2778d521942c Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 20 May 2025 11:26:37 +0200 Subject: [PATCH 10/79] Change back to using gitpod user --- nf_core/devcontainer/devcontainer.Dockerfile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 8749dced3e..20a77332e6 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -21,6 +21,9 @@ RUN apt-get update --quiet && \ tree \ graphviz \ software-properties-common && \ + add-apt-repository -y ppa:apptainer/ppa && \ + apt-get update --quiet && \ + apt-get install --quiet --yes apptainer && \ wget --quiet https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh && \ bash Miniforge3-Linux-x86_64.sh -b -p /opt/conda && \ rm Miniforge3-Linux-x86_64.sh && \ @@ -34,9 +37,8 @@ ENV PATH="/opt/conda/bin:$PATH" COPY . /usr/src/nf_core WORKDIR /usr/src/nf_core -RUN useradd -mU nemo -RUN chown -R nemo:nemo /opt/conda /usr/src/nf_core -USER nemo +RUN chown -R gitpod:gitpod /opt/conda /usr/src/nf_core +USER gitpod # Install nextflow, nf-core, nf-test, and other useful tools RUN conda config --add channels bioconda && \ From a5c66443309b7eabe620702c332b8566da3a8407 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 20 May 2025 11:53:47 +0200 Subject: [PATCH 11/79] Remove comment --- nf_core/devcontainer/devcontainer.Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 20a77332e6..894ebb23f5 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -2,7 +2,6 @@ # docker build . -t tools-devcontainer:local -f nf_core/devcontainer/devcontainer.Dockerfile # See https://docs.renovatebot.com/docker/#digest-pinning for why a digest is used. -#FROM mcr.microsoft.com/devcontainers/python:0-3.11-bullseye FROM gitpod/workspace-base:2025-05-14-07-50-25 USER root From c77a469d7bd0ffa737200f51d6e31bca17db908b Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 20 May 2025 11:54:40 +0200 Subject: [PATCH 12/79] WIP: build container locally instead of pulling. Change to gitpod user. Update postCreateCommand to match context --- .devcontainer/devcontainer.json | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 08feb329c6..406b5dac23 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,8 +1,12 @@ { "name": "nfcore", - "image": "nfcore/tools-devcontainer", - "postCreateCommand": "python -m pip install --upgrade -r ../requirements-dev.txt -e ../ && pre-commit install --install-hooks", - "remoteUser": "nemo", + // "image": "nfcore/tools-devcontainer", + "build": { + "dockerfile": "../nf_core/devcontainer/devcontainer.Dockerfile", + "context": ".." + }, + "postCreateCommand": "python -m pip install --upgrade -r requirements-dev.txt -e . && pre-commit install --install-hooks", + "remoteUser": "gitpod", "runArgs": ["--privileged"], // Configure tool-specific properties. From 36e5f7a1b6b7e19c745e7aa00d9702ecb8b09fd3 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 20 May 2025 12:01:05 +0200 Subject: [PATCH 13/79] Rename pushed container to nf-core/devcontainer --- .devcontainer/devcontainer.json | 2 +- .github/workflows/push_dockerhub_dev.yml | 6 +++--- .github/workflows/push_dockerhub_release.yml | 10 +++++----- nf_core/devcontainer/devcontainer.Dockerfile | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 406b5dac23..9be21800d6 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "name": "nfcore", - // "image": "nfcore/tools-devcontainer", + // "image": "nfcore/devcontainer", "build": { "dockerfile": "../nf_core/devcontainer/devcontainer.Dockerfile", "context": ".." diff --git a/.github/workflows/push_dockerhub_dev.yml b/.github/workflows/push_dockerhub_dev.yml index 25a5d192b1..92cabb06e5 100644 --- a/.github/workflows/push_dockerhub_dev.yml +++ b/.github/workflows/push_dockerhub_dev.yml @@ -28,11 +28,11 @@ jobs: - name: Build nfcore/tools:dev docker image run: docker build --no-cache . -t nfcore/tools:dev - - name: Build nfcore/tools-devcontainer:dev docker image - run: docker build --no-cache . --file nf_core/devcontainer/devcontainer.Dockerfile -t nfcore/tools-devcontainer:dev + - name: Build nfcore/devcontainer:dev docker image + run: docker build --no-cache . --file nf_core/devcontainer/devcontainer.Dockerfile -t nfcore/devcontainer:dev - name: Push Docker images to DockerHub (dev) run: | echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin docker push nfcore/tools:dev - docker push nfcore/tools-devcontainer:dev + docker push nfcore/devcontainer:dev diff --git a/.github/workflows/push_dockerhub_release.yml b/.github/workflows/push_dockerhub_release.yml index e3fdbfb8d1..895fa37669 100644 --- a/.github/workflows/push_dockerhub_release.yml +++ b/.github/workflows/push_dockerhub_release.yml @@ -28,8 +28,8 @@ jobs: - name: Build nfcore/tools:latest docker image run: docker build --no-cache . -t nfcore/tools:latest - - name: Build nfcore/tools-devcontainer:latest docker image - run: docker build --no-cache . --file nf_core/devcontainer/devcontainer.Dockerfile -t nfcore/tools-devcontainer:latest + - name: Build nfcore/devcontainer:latest docker image + run: docker build --no-cache . --file nf_core/devcontainer/devcontainer.Dockerfile -t nfcore/devcontainer:latest - name: Push Docker images to DockerHub (release) run: | @@ -37,6 +37,6 @@ jobs: docker push nfcore/tools:latest docker tag nfcore/tools:latest nfcore/tools:${{ github.event.release.tag_name }} docker push nfcore/tools:${{ github.event.release.tag_name }} - docker push nfcore/tools-devcontainer:latest - docker tag nfcore/tools-devcontainer:latest nfcore/tools-devcontainer:${{ github.event.release.tag_name }} - docker push nfcore/tools-devcontainer:${{ github.event.release.tag_name }} + docker push nfcore/devcontainer:latest + docker tag nfcore/devcontainer:latest nfcore/devcontainer:${{ github.event.release.tag_name }} + docker push nfcore/devcontainer:${{ github.event.release.tag_name }} diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 894ebb23f5..ef0276436c 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -1,5 +1,5 @@ # Test build locally before making a PR (from project root directory) -# docker build . -t tools-devcontainer:local -f nf_core/devcontainer/devcontainer.Dockerfile +# docker build . -t devcontainer:local -f nf_core/devcontainer/devcontainer.Dockerfile # See https://docs.renovatebot.com/docker/#digest-pinning for why a digest is used. FROM gitpod/workspace-base:2025-05-14-07-50-25 From 4f8a2c07c88d2067af807125b16d612732e9e9b1 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 20 May 2025 12:04:22 +0200 Subject: [PATCH 14/79] Remove gitpod.yml from template --- nf_core/pipeline-template/.gitpod.yml | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 nf_core/pipeline-template/.gitpod.yml diff --git a/nf_core/pipeline-template/.gitpod.yml b/nf_core/pipeline-template/.gitpod.yml deleted file mode 100644 index c6a2e40b87..0000000000 --- a/nf_core/pipeline-template/.gitpod.yml +++ /dev/null @@ -1,10 +0,0 @@ -image: nfcore/gitpod:latest -tasks: - - name: Update Nextflow and setup pre-commit - command: | - pre-commit install --install-hooks - nextflow self-update {%- if code_linters %} - -vscode: - extensions: - - nf-core.nf-core-extensionpack # https://github.com/nf-core/vscode-extensionpack{% endif %} From c225114a7eb87ed812958ad94c67602a106339da Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 20 May 2025 12:05:21 +0200 Subject: [PATCH 15/79] Remove .gitpod.yml --- .gitpod.yml | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 .gitpod.yml diff --git a/.gitpod.yml b/.gitpod.yml deleted file mode 100644 index d5948695bf..0000000000 --- a/.gitpod.yml +++ /dev/null @@ -1,12 +0,0 @@ -image: nfcore/gitpod:dev -tasks: - - name: install current state of nf-core/tools and setup pre-commit - command: | - python -m pip install -e . - python -m pip install -r requirements-dev.txt - pre-commit install --install-hooks - nextflow self-update - -vscode: - extensions: - - nf-core.nf-core-extensionpack # https://github.com/nf-core/vscode-extensionpack From f5256571177fcb2a0cac87df00a4cef7b5d1c5ae Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 20 May 2025 12:18:03 +0200 Subject: [PATCH 16/79] Remove local container building --- .devcontainer/devcontainer.json | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 9be21800d6..44740d710d 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,10 +1,6 @@ { "name": "nfcore", - // "image": "nfcore/devcontainer", - "build": { - "dockerfile": "../nf_core/devcontainer/devcontainer.Dockerfile", - "context": ".." - }, + "image": "nfcore/devcontainer", "postCreateCommand": "python -m pip install --upgrade -r requirements-dev.txt -e . && pre-commit install --install-hooks", "remoteUser": "gitpod", "runArgs": ["--privileged"], From e0e6d97e747e73fb7410b19d4fe99ffc3f03ac5e Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 20 May 2025 12:27:06 +0200 Subject: [PATCH 17/79] Change base image tag --- nf_core/devcontainer/devcontainer.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index ef0276436c..0b08de836d 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -2,7 +2,7 @@ # docker build . -t devcontainer:local -f nf_core/devcontainer/devcontainer.Dockerfile # See https://docs.renovatebot.com/docker/#digest-pinning for why a digest is used. -FROM gitpod/workspace-base:2025-05-14-07-50-25 +FROM gitpod/workspace-base@sha256:7f35e401405c38ebc1185dfc3d6c066f73a524e8b86641453ea4690cc5c24fb6 USER root From 923d99d04d93fb8a86c8053ebf76ccd353ded117 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 20 May 2025 12:28:47 +0200 Subject: [PATCH 18/79] re-add comments --- nf_core/devcontainer/devcontainer.Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 0b08de836d..a0d7779e28 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -36,7 +36,10 @@ ENV PATH="/opt/conda/bin:$PATH" COPY . /usr/src/nf_core WORKDIR /usr/src/nf_core +# Change ownership for gitpod RUN chown -R gitpod:gitpod /opt/conda /usr/src/nf_core + +# Change user to gitpod USER gitpod # Install nextflow, nf-core, nf-test, and other useful tools From b5e748728939dd70e6eaf2e3903c8900a093a5e7 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 20 May 2025 12:48:33 +0200 Subject: [PATCH 19/79] Add latest tag explicitly --- .devcontainer/devcontainer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 44740d710d..7484e1a24a 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "name": "nfcore", - "image": "nfcore/devcontainer", + "image": "nfcore/devcontainer:latest", "postCreateCommand": "python -m pip install --upgrade -r requirements-dev.txt -e . && pre-commit install --install-hooks", "remoteUser": "gitpod", "runArgs": ["--privileged"], From 8785edba934aded957e062626fc35885b3f5ec71 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 20 May 2025 17:59:43 +0200 Subject: [PATCH 20/79] Test seqera container base image --- nf_core/devcontainer/seqeracontainer.Dockerfile | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 nf_core/devcontainer/seqeracontainer.Dockerfile diff --git a/nf_core/devcontainer/seqeracontainer.Dockerfile b/nf_core/devcontainer/seqeracontainer.Dockerfile new file mode 100644 index 0000000000..6fc73960a0 --- /dev/null +++ b/nf_core/devcontainer/seqeracontainer.Dockerfile @@ -0,0 +1,15 @@ +FROM community.wave.seqera.io/library/nextflow_nf-test_apptainer_curl_pruned:eeb39fa4eeaed3f3 + +RUN curl -sSL https://get.docker.com/ | sh + +# Add the nf-core source files to the image +COPY . /usr/src/nf_core +WORKDIR /usr/src/nf_core + +# Update Nextflow and Install nf-core +RUN python -m pip install . --no-cache-dir + +# Setup pdiff for nf-test diffs +ENV NFT_DIFF="pdiff" +ENV NFT_DIFF_ARGS="--line-numbers --expand-tabs=2" +ENV JAVA_TOOL_OPTIONS= From cccb21c21d6319071784d363d1469603e5c49c4f Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 20 May 2025 18:08:54 +0200 Subject: [PATCH 21/79] update comments. todo --- nf_core/devcontainer/seqeracontainer.Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nf_core/devcontainer/seqeracontainer.Dockerfile b/nf_core/devcontainer/seqeracontainer.Dockerfile index 6fc73960a0..930a660af1 100644 --- a/nf_core/devcontainer/seqeracontainer.Dockerfile +++ b/nf_core/devcontainer/seqeracontainer.Dockerfile @@ -1,5 +1,8 @@ FROM community.wave.seqera.io/library/nextflow_nf-test_apptainer_curl_pruned:eeb39fa4eeaed3f3 +# TODO: Create unprivileged user? -> root used by default in seqera images + +# Install docker (Note: requires mounting /var/run/docker.sock) RUN curl -sSL https://get.docker.com/ | sh # Add the nf-core source files to the image From 774b4cd9940feb5dfb870ada0c53cbc734497a42 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 20 May 2025 18:11:02 +0200 Subject: [PATCH 22/79] Rename to reflect base image --- .../{devcontainer.Dockerfile => devcontainer_gitpod.Dockerfile} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename nf_core/devcontainer/{devcontainer.Dockerfile => devcontainer_gitpod.Dockerfile} (100%) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer_gitpod.Dockerfile similarity index 100% rename from nf_core/devcontainer/devcontainer.Dockerfile rename to nf_core/devcontainer/devcontainer_gitpod.Dockerfile From 0091a34eab0b4ac68155ee99f3ecf361da3adc8f Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 20 May 2025 19:37:29 +0200 Subject: [PATCH 23/79] WIP: devcontainer with docker-in-docker feature --- .devcontainer/devcontainer.json | 20 +++++- nf_core/devcontainer/devcontainer.Dockerfile | 65 ++++++++++++++++++++ 2 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 nf_core/devcontainer/devcontainer.Dockerfile diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 7484e1a24a..656062ed8c 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,9 +1,23 @@ { "name": "nfcore", "image": "nfcore/devcontainer:latest", - "postCreateCommand": "python -m pip install --upgrade -r requirements-dev.txt -e . && pre-commit install --install-hooks", - "remoteUser": "gitpod", - "runArgs": ["--privileged"], + //"build": { + // "dockerfile": "../nf_core/devcontainer/devcontainer.Dockerfile", + // "context": "..", + //} + //"image": "mcr.microsoft.com/devcontainers/python:3.11", + + "features": { + "ghcr.io/devcontainers/features/docker-in-docker:2": { + "version": "latest", + "enableNonRootDocker": "true", + "moby": "true" + } + }, + + //"postCreateCommand": "python -m pip install --upgrade -r requirements-dev.txt -e . && pre-commit install --install-hooks", + //"remoteUser": "gitpod", + //"runArgs": ["--privileged"], // Configure tool-specific properties. "customizations": { diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile new file mode 100644 index 0000000000..a8633a3998 --- /dev/null +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -0,0 +1,65 @@ +# Test build locally before making a PR (from project root directory) +# docker build . -t devcontainer:local -f nf_core/devcontainer/devcontainer.Dockerfile + +# See https://docs.renovatebot.com/docker/#digest-pinning for why a digest is used. +FROM mcr.microsoft.com/devcontainers/python:3.11 + +USER root + +# Install util tools. +# software-properties-common is needed to add ppa support for Apptainer installation +RUN apt-get update --quiet && \ + apt-get install --quiet --yes --no-install-recommends \ + apt-transport-https \ + apt-utils \ + sudo \ + git \ + less \ + wget \ + curl \ + tree \ + graphviz \ + software-properties-common && \ + wget --quiet https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh && \ + bash Miniforge3-Linux-x86_64.sh -b -p /opt/conda && \ + rm Miniforge3-Linux-x86_64.sh && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +# Set PATH for Conda +ENV PATH="/opt/conda/bin:$PATH" + +# Add the nf-core source files to the image +COPY . /usr/src/nf_core +WORKDIR /usr/src/nf_core + +# Change ownership for gitpod +#RUN chown -R gitpod:gitpod /opt/conda /usr/src/nf_core + +# Change user to gitpod +#USER gitpod + +# Install nextflow, nf-core, nf-test, and other useful tools +RUN conda config --add channels bioconda && \ + conda config --add channels conda-forge && \ + conda config --set channel_priority strict && \ + conda install --quiet --yes --update-all --name base \ + apptainer \ + nextflow \ + nf-test \ + prettier \ + pre-commit \ + ruff \ + mypy \ + openjdk \ + pytest-workflow && \ + conda clean --all --force-pkgs-dirs --yes + +# Update Nextflow and Install nf-core +RUN nextflow self-update && \ + python -m pip install . --no-cache-dir + +# Setup pdiff for nf-test diffs +ENV NFT_DIFF="pdiff" +ENV NFT_DIFF_ARGS="--line-numbers --expand-tabs=2" +ENV JAVA_TOOL_OPTIONS= From 875d66135de3a6b48113ab3a386a1d201c1fae09 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 20 May 2025 20:38:24 +0200 Subject: [PATCH 24/79] Add seqera url as comment --- nf_core/devcontainer/seqeracontainer.Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/nf_core/devcontainer/seqeracontainer.Dockerfile b/nf_core/devcontainer/seqeracontainer.Dockerfile index 930a660af1..5546a17e9f 100644 --- a/nf_core/devcontainer/seqeracontainer.Dockerfile +++ b/nf_core/devcontainer/seqeracontainer.Dockerfile @@ -1,3 +1,4 @@ +# Seqera Container Url: https://wave.seqera.io/view/builds/bd-eeb39fa4eeaed3f3_1 FROM community.wave.seqera.io/library/nextflow_nf-test_apptainer_curl_pruned:eeb39fa4eeaed3f3 # TODO: Create unprivileged user? -> root used by default in seqera images From 6a2c92d7e060efd23aacedf83d57349e60e6e753 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 27 May 2025 10:00:27 +0200 Subject: [PATCH 25/79] Overwrite base image entrypoint. Add non-privileged user. --- nf_core/devcontainer/devcontainer.Dockerfile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index a8633a3998..ba5a6126a0 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -34,10 +34,13 @@ COPY . /usr/src/nf_core WORKDIR /usr/src/nf_core # Change ownership for gitpod -#RUN chown -R gitpod:gitpod /opt/conda /usr/src/nf_core +RUN useradd -m -s /bin/bash nfc-user && \ + chown -R nfc-user:nfc-user /opt/conda /usr/src/nf_core && \ + groupadd docker && \ + usermod -aG docker nfc-user # Change user to gitpod -#USER gitpod +USER nfc-user # Install nextflow, nf-core, nf-test, and other useful tools RUN conda config --add channels bioconda && \ @@ -63,3 +66,5 @@ RUN nextflow self-update && \ ENV NFT_DIFF="pdiff" ENV NFT_DIFF_ARGS="--line-numbers --expand-tabs=2" ENV JAVA_TOOL_OPTIONS= + +ENTRYPOINT [ "/bin/sh -c" ] From 77a83575a296bb956a2a47e92e1c4ae483153203 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 27 May 2025 10:00:49 +0200 Subject: [PATCH 26/79] Clean up --- .devcontainer/devcontainer.json | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 656062ed8c..a79644c35e 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,23 +1,13 @@ { "name": "nfcore", "image": "nfcore/devcontainer:latest", - //"build": { - // "dockerfile": "../nf_core/devcontainer/devcontainer.Dockerfile", - // "context": "..", - //} - //"image": "mcr.microsoft.com/devcontainers/python:3.11", "features": { - "ghcr.io/devcontainers/features/docker-in-docker:2": { - "version": "latest", - "enableNonRootDocker": "true", - "moby": "true" - } + "ghcr.io/devcontainers/features/docker-in-docker:2": {} }, - //"postCreateCommand": "python -m pip install --upgrade -r requirements-dev.txt -e . && pre-commit install --install-hooks", - //"remoteUser": "gitpod", - //"runArgs": ["--privileged"], + "postCreateCommand": "python -m pip install --upgrade -r requirements-dev.txt -e . && pre-commit install --install-hooks", + "remoteUser": "nfc-user", // Configure tool-specific properties. "customizations": { From 0aa49b372bdcc1dc3faaf2f7c093485a518309dd Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 27 May 2025 10:06:27 +0200 Subject: [PATCH 27/79] Make user privileged when running container --- .devcontainer/devcontainer.json | 1 + nf_core/devcontainer/devcontainer.Dockerfile | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index a79644c35e..fd2ee4f0b9 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -8,6 +8,7 @@ "postCreateCommand": "python -m pip install --upgrade -r requirements-dev.txt -e . && pre-commit install --install-hooks", "remoteUser": "nfc-user", + "privileged": true, // Configure tool-specific properties. "customizations": { diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index ba5a6126a0..7fad08ae98 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -66,5 +66,3 @@ RUN nextflow self-update && \ ENV NFT_DIFF="pdiff" ENV NFT_DIFF_ARGS="--line-numbers --expand-tabs=2" ENV JAVA_TOOL_OPTIONS= - -ENTRYPOINT [ "/bin/sh -c" ] From e9fa6dfb19f9e877292a4f3030c9e22ea187d868 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 27 May 2025 10:27:44 +0200 Subject: [PATCH 28/79] Change to non-root user 'vscode' from base image. Try running without privileged --- .devcontainer/devcontainer.json | 4 ++-- nf_core/devcontainer/devcontainer.Dockerfile | 7 ++----- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index fd2ee4f0b9..de45c4b858 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -7,8 +7,8 @@ }, "postCreateCommand": "python -m pip install --upgrade -r requirements-dev.txt -e . && pre-commit install --install-hooks", - "remoteUser": "nfc-user", - "privileged": true, + "remoteUser": "vscode", + //"privileged": true, // Configure tool-specific properties. "customizations": { diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 7fad08ae98..8b1210e2fb 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -34,13 +34,10 @@ COPY . /usr/src/nf_core WORKDIR /usr/src/nf_core # Change ownership for gitpod -RUN useradd -m -s /bin/bash nfc-user && \ - chown -R nfc-user:nfc-user /opt/conda /usr/src/nf_core && \ - groupadd docker && \ - usermod -aG docker nfc-user +RUN chown -R vscode:vscode /opt/conda /usr/src/nf_core # Change user to gitpod -USER nfc-user +USER vscode # Install nextflow, nf-core, nf-test, and other useful tools RUN conda config --add channels bioconda && \ From 552b0ff6e9f25deb8e2f755848a88af91ead1a9f Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 27 May 2025 10:38:51 +0200 Subject: [PATCH 29/79] Run privileged --- .devcontainer/devcontainer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index de45c4b858..c3b123fd91 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -8,7 +8,7 @@ "postCreateCommand": "python -m pip install --upgrade -r requirements-dev.txt -e . && pre-commit install --install-hooks", "remoteUser": "vscode", - //"privileged": true, + "privileged": true, // Configure tool-specific properties. "customizations": { From dd021d0dacf3f6baff07428aa536c9030eab9366 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 27 May 2025 11:05:28 +0200 Subject: [PATCH 30/79] Change nf-core install to have dev dependencies and --editable set --- nf_core/devcontainer/devcontainer.Dockerfile | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 8b1210e2fb..62737373df 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -57,9 +57,4 @@ RUN conda config --add channels bioconda && \ # Update Nextflow and Install nf-core RUN nextflow self-update && \ - python -m pip install . --no-cache-dir - -# Setup pdiff for nf-test diffs -ENV NFT_DIFF="pdiff" -ENV NFT_DIFF_ARGS="--line-numbers --expand-tabs=2" -ENV JAVA_TOOL_OPTIONS= + python -m pip install -r requirements-dev.txt -e . --no-cache-dir From 64e86d54c6e4d7bf56c01be3a106bc0e3c84b295 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 27 May 2025 11:06:26 +0200 Subject: [PATCH 31/79] Install pre-commit hooks in image --- nf_core/devcontainer/devcontainer.Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 62737373df..05bb8b5160 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -57,4 +57,5 @@ RUN conda config --add channels bioconda && \ # Update Nextflow and Install nf-core RUN nextflow self-update && \ - python -m pip install -r requirements-dev.txt -e . --no-cache-dir + python -m pip install -r requirements-dev.txt -e . --no-cache-dir && \ + pre-commit --install-hooks From 9eda307bab17959607f0e7db05a5b6e551afc3f6 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 27 May 2025 11:07:36 +0200 Subject: [PATCH 32/79] =?UTF-8?q?Remove=C2=A0redundant=20post-create=20ins?= =?UTF-8?q?tallation=20of=20nf-core=20and=20pre-commit=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nf_core/devcontainer/devcontainer.Dockerfile | 6 ------ 1 file changed, 6 deletions(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 05bb8b5160..c26c728581 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -47,12 +47,6 @@ RUN conda config --add channels bioconda && \ apptainer \ nextflow \ nf-test \ - prettier \ - pre-commit \ - ruff \ - mypy \ - openjdk \ - pytest-workflow && \ conda clean --all --force-pkgs-dirs --yes # Update Nextflow and Install nf-core From d0fea24243dae68155e2f39a9f44fb0f0172ddd0 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 27 May 2025 12:22:46 +0200 Subject: [PATCH 33/79] Remove postCreateCommand. Remove Privileged --- .devcontainer/devcontainer.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index c3b123fd91..ac18733f70 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -6,9 +6,7 @@ "ghcr.io/devcontainers/features/docker-in-docker:2": {} }, - "postCreateCommand": "python -m pip install --upgrade -r requirements-dev.txt -e . && pre-commit install --install-hooks", "remoteUser": "vscode", - "privileged": true, // Configure tool-specific properties. "customizations": { From d9749522aa32c6feb48a7b3534451945408b4679 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 27 May 2025 12:31:59 +0200 Subject: [PATCH 34/79] Fix pre-commit install cmd --- nf_core/devcontainer/devcontainer.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index c26c728581..7661afc814 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -52,4 +52,4 @@ RUN conda config --add channels bioconda && \ # Update Nextflow and Install nf-core RUN nextflow self-update && \ python -m pip install -r requirements-dev.txt -e . --no-cache-dir && \ - pre-commit --install-hooks + pre-commit install --install-hooks From 3216521a611f384dad42840d0a166b26bc3c21f7 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 27 May 2025 12:32:20 +0200 Subject: [PATCH 35/79] Remove more redundant conda packages --- nf_core/devcontainer/devcontainer.Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 7661afc814..3233cb2db5 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -45,8 +45,7 @@ RUN conda config --add channels bioconda && \ conda config --set channel_priority strict && \ conda install --quiet --yes --update-all --name base \ apptainer \ - nextflow \ - nf-test \ + nextflow && \ conda clean --all --force-pkgs-dirs --yes # Update Nextflow and Install nf-core From e400076c152d71a12d6650c0c208ab48c36f1a7d Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 27 May 2025 12:38:09 +0200 Subject: [PATCH 36/79] Chown nf-core dir when copying. Chown conda folder only when using conda --- nf_core/devcontainer/devcontainer.Dockerfile | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 3233cb2db5..7ea5dba3df 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -30,17 +30,15 @@ RUN apt-get update --quiet && \ ENV PATH="/opt/conda/bin:$PATH" # Add the nf-core source files to the image -COPY . /usr/src/nf_core +COPY --chown=vscode:vscode . /usr/src/nf_core WORKDIR /usr/src/nf_core -# Change ownership for gitpod -RUN chown -R vscode:vscode /opt/conda /usr/src/nf_core - # Change user to gitpod USER vscode # Install nextflow, nf-core, nf-test, and other useful tools -RUN conda config --add channels bioconda && \ +RUN chown -R vscode:vscode /opt/conda && \ + conda config --add channels bioconda && \ conda config --add channels conda-forge && \ conda config --set channel_priority strict && \ conda install --quiet --yes --update-all --name base \ From 7e1aba21cb770075cb5f003fceddc23ade8a13e7 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 27 May 2025 12:39:21 +0200 Subject: [PATCH 37/79] Remove unneeded dependencies and those already in base image --- nf_core/devcontainer/devcontainer.Dockerfile | 8 -------- 1 file changed, 8 deletions(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 7ea5dba3df..f8b2a95011 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -7,19 +7,11 @@ FROM mcr.microsoft.com/devcontainers/python:3.11 USER root # Install util tools. -# software-properties-common is needed to add ppa support for Apptainer installation RUN apt-get update --quiet && \ apt-get install --quiet --yes --no-install-recommends \ apt-transport-https \ apt-utils \ - sudo \ - git \ - less \ - wget \ - curl \ - tree \ graphviz \ - software-properties-common && \ wget --quiet https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh && \ bash Miniforge3-Linux-x86_64.sh -b -p /opt/conda && \ rm Miniforge3-Linux-x86_64.sh && \ From 14a3e9572a50b9dfe6e5d605454f10930006d9fa Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 27 May 2025 12:41:49 +0200 Subject: [PATCH 38/79] Fix command end --- nf_core/devcontainer/devcontainer.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index f8b2a95011..52115804bb 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -11,7 +11,7 @@ RUN apt-get update --quiet && \ apt-get install --quiet --yes --no-install-recommends \ apt-transport-https \ apt-utils \ - graphviz \ + graphviz && \ wget --quiet https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh && \ bash Miniforge3-Linux-x86_64.sh -b -p /opt/conda && \ rm Miniforge3-Linux-x86_64.sh && \ From 6d284fb6f1f8883830352cee8496a13d612b56e2 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 27 May 2025 12:56:17 +0200 Subject: [PATCH 39/79] WIP: Comment out section adding lots of size to the image --- nf_core/devcontainer/devcontainer.Dockerfile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 52115804bb..27ef17bd6e 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -39,6 +39,7 @@ RUN chown -R vscode:vscode /opt/conda && \ conda clean --all --force-pkgs-dirs --yes # Update Nextflow and Install nf-core -RUN nextflow self-update && \ - python -m pip install -r requirements-dev.txt -e . --no-cache-dir && \ - pre-commit install --install-hooks +# TODO: This adds 900MB to the image +# RUN nextflow self-update && \ +# python -m pip install -r requirements-dev.txt -e . --no-cache-dir && \ +# pre-commit install --install-hooks From 5d8503bf28b434827a2cd2fa817c1f75517b7f61 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 27 May 2025 12:57:06 +0200 Subject: [PATCH 40/79] Use vscode user everywhere --- nf_core/devcontainer/devcontainer.Dockerfile | 21 ++++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 27ef17bd6e..1f8b86f3c3 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -4,19 +4,21 @@ # See https://docs.renovatebot.com/docker/#digest-pinning for why a digest is used. FROM mcr.microsoft.com/devcontainers/python:3.11 -USER root +# Change user to vscode +USER vscode +WORKDIR /home/vscode # Install util tools. -RUN apt-get update --quiet && \ - apt-get install --quiet --yes --no-install-recommends \ +RUN sudo apt-get update --quiet && \ + sudo apt-get install --quiet --yes --no-install-recommends \ apt-transport-https \ apt-utils \ graphviz && \ wget --quiet https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh && \ - bash Miniforge3-Linux-x86_64.sh -b -p /opt/conda && \ + sudo bash Miniforge3-Linux-x86_64.sh -b -p /opt/conda && \ rm Miniforge3-Linux-x86_64.sh && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* + sudo apt-get clean && \ + sudo rm -rf /var/lib/apt/lists/* # Set PATH for Conda ENV PATH="/opt/conda/bin:$PATH" @@ -25,11 +27,8 @@ ENV PATH="/opt/conda/bin:$PATH" COPY --chown=vscode:vscode . /usr/src/nf_core WORKDIR /usr/src/nf_core -# Change user to gitpod -USER vscode - -# Install nextflow, nf-core, nf-test, and other useful tools -RUN chown -R vscode:vscode /opt/conda && \ +# Install nextflow and apptainer via conda +RUN sudo chown -R vscode:vscode /opt/conda && \ conda config --add channels bioconda && \ conda config --add channels conda-forge && \ conda config --set channel_priority strict && \ From 08d29fc956ecdf1eb2b371c7d880fb4cf22376f5 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 27 May 2025 13:11:28 +0200 Subject: [PATCH 41/79] Re-introduce nextflow update, nf-core dev, and commit hooks install --- nf_core/devcontainer/devcontainer.Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 1f8b86f3c3..ea0115b2d1 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -39,6 +39,6 @@ RUN sudo chown -R vscode:vscode /opt/conda && \ # Update Nextflow and Install nf-core # TODO: This adds 900MB to the image -# RUN nextflow self-update && \ -# python -m pip install -r requirements-dev.txt -e . --no-cache-dir && \ -# pre-commit install --install-hooks +RUN nextflow self-update && \ + python -m pip install -r requirements-dev.txt -e . --no-cache-dir && \ + pre-commit install --install-hooks From c5dd2d240939eb218a142142987afd5d13f39bd8 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Tue, 27 May 2025 13:25:39 +0200 Subject: [PATCH 42/79] Use nextflow/training base image to share nextflow, conda installation --- nf_core/devcontainer/devcontainer.Dockerfile | 32 +++----------------- 1 file changed, 5 insertions(+), 27 deletions(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index ea0115b2d1..474e2b222e 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -1,27 +1,11 @@ # Test build locally before making a PR (from project root directory) # docker build . -t devcontainer:local -f nf_core/devcontainer/devcontainer.Dockerfile -# See https://docs.renovatebot.com/docker/#digest-pinning for why a digest is used. -FROM mcr.microsoft.com/devcontainers/python:3.11 +# Uses mcr.microsoft.com/devcontainers/base:ubuntu +FROM ghcr.io/nextflow-io/training:latest # Change user to vscode USER vscode -WORKDIR /home/vscode - -# Install util tools. -RUN sudo apt-get update --quiet && \ - sudo apt-get install --quiet --yes --no-install-recommends \ - apt-transport-https \ - apt-utils \ - graphviz && \ - wget --quiet https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh && \ - sudo bash Miniforge3-Linux-x86_64.sh -b -p /opt/conda && \ - rm Miniforge3-Linux-x86_64.sh && \ - sudo apt-get clean && \ - sudo rm -rf /var/lib/apt/lists/* - -# Set PATH for Conda -ENV PATH="/opt/conda/bin:$PATH" # Add the nf-core source files to the image COPY --chown=vscode:vscode . /usr/src/nf_core @@ -29,16 +13,10 @@ WORKDIR /usr/src/nf_core # Install nextflow and apptainer via conda RUN sudo chown -R vscode:vscode /opt/conda && \ - conda config --add channels bioconda && \ - conda config --add channels conda-forge && \ - conda config --set channel_priority strict && \ conda install --quiet --yes --update-all --name base \ - apptainer \ - nextflow && \ + conda-forge::apptainer>=1.4.1 && \ conda clean --all --force-pkgs-dirs --yes -# Update Nextflow and Install nf-core -# TODO: This adds 900MB to the image -RUN nextflow self-update && \ - python -m pip install -r requirements-dev.txt -e . --no-cache-dir && \ +# Install nf-core with development dependencies and git commit hooks +RUN python -m pip install -r requirements-dev.txt -e . --no-cache-dir && \ pre-commit install --install-hooks From 0fa9993d2e186e061ac7c6d16ef0fcaaadce96be Mon Sep 17 00:00:00 2001 From: JulianFlesch Date: Wed, 28 May 2025 09:01:02 +0000 Subject: [PATCH 43/79] Add setup.sh to fix run issues with nf/training img. Move latest tools install to setup.sh --- .devcontainer/setup.sh | 14 ++++++++++++++ nf_core/devcontainer/devcontainer.Dockerfile | 4 ---- 2 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 .devcontainer/setup.sh diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh new file mode 100644 index 0000000000..1416fd3a7d --- /dev/null +++ b/.devcontainer/setup.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +# Customise the terminal command prompt +printf "export PS1='\\[\\e[3;36m\\]\${PWD#/workspaces/} ->\\[\\e[0m\\] '\n" >> $HOME/.bashrc +export PS1='\[\e[3;36m\]${PWD#/workspaces/} ->\[\e[0m\] ' + +# Update Nextflow +nextflow self-update + +# Install nf-core tools in editable mode +python -m pip install -r requirements-dev.txt -e . --no-cache-dir + +# Install pre-commit hooks +pre-commit install --install-hooks diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 474e2b222e..936d216bcb 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -16,7 +16,3 @@ RUN sudo chown -R vscode:vscode /opt/conda && \ conda install --quiet --yes --update-all --name base \ conda-forge::apptainer>=1.4.1 && \ conda clean --all --force-pkgs-dirs --yes - -# Install nf-core with development dependencies and git commit hooks -RUN python -m pip install -r requirements-dev.txt -e . --no-cache-dir && \ - pre-commit install --install-hooks From 2eceaf72df17736ed002d4bcc8a2e66c0b2dd645 Mon Sep 17 00:00:00 2001 From: JulianFlesch Date: Wed, 28 May 2025 09:14:34 +0000 Subject: [PATCH 44/79] change ownership of nextflow installation location --- nf_core/devcontainer/devcontainer.Dockerfile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 936d216bcb..825ac38797 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -7,12 +7,15 @@ FROM ghcr.io/nextflow-io/training:latest # Change user to vscode USER vscode +# Change the nextflow directory +RUN chown -R vscode:vscode /usr/local/bin/ && \ + sudo chown -R vscode:vscode /opt/conda + # Add the nf-core source files to the image COPY --chown=vscode:vscode . /usr/src/nf_core WORKDIR /usr/src/nf_core # Install nextflow and apptainer via conda -RUN sudo chown -R vscode:vscode /opt/conda && \ - conda install --quiet --yes --update-all --name base \ +RUN conda install --quiet --yes --update-all --name base \ conda-forge::apptainer>=1.4.1 && \ conda clean --all --force-pkgs-dirs --yes From 4b825df6e849d88160871f430c8967195ef96bd7 Mon Sep 17 00:00:00 2001 From: JulianFlesch Date: Wed, 28 May 2025 09:41:51 +0000 Subject: [PATCH 45/79] Update comment. Change layer order --- nf_core/devcontainer/devcontainer.Dockerfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 825ac38797..0fe28f921a 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -7,15 +7,15 @@ FROM ghcr.io/nextflow-io/training:latest # Change user to vscode USER vscode -# Change the nextflow directory -RUN chown -R vscode:vscode /usr/local/bin/ && \ - sudo chown -R vscode:vscode /opt/conda - # Add the nf-core source files to the image COPY --chown=vscode:vscode . /usr/src/nf_core WORKDIR /usr/src/nf_core -# Install nextflow and apptainer via conda +# Change ownership of conda and nextflow bin +RUN sudo chown -R vscode:vscode /usr/local/bin/ && \ + sudo chown -R vscode:vscode /opt/conda + +# Install apptainer via conda RUN conda install --quiet --yes --update-all --name base \ conda-forge::apptainer>=1.4.1 && \ conda clean --all --force-pkgs-dirs --yes From d7854ff88ecbd95520c733dd52fab12aa6fb332b Mon Sep 17 00:00:00 2001 From: JulianFlesch Date: Wed, 28 May 2025 10:15:34 +0000 Subject: [PATCH 46/79] Update template devcontainer --- .../pipeline-template/.devcontainer/devcontainer.json | 9 ++++++--- nf_core/pipeline-template/.devcontainer/setup.sh | 8 ++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 nf_core/pipeline-template/.devcontainer/setup.sh diff --git a/nf_core/pipeline-template/.devcontainer/devcontainer.json b/nf_core/pipeline-template/.devcontainer/devcontainer.json index b290e09017..d8ef9f325d 100644 --- a/nf_core/pipeline-template/.devcontainer/devcontainer.json +++ b/nf_core/pipeline-template/.devcontainer/devcontainer.json @@ -1,8 +1,11 @@ { "name": "nfcore", - "image": "nfcore/gitpod:latest", - "remoteUser": "gitpod", - "runArgs": ["--privileged"], + "image": "nfcore/devcontainer:latest", + "remoteUser": "vscode", + + "features": { + "ghcr.io/devcontainers/features/docker-in-docker:2": {} + }, // Configure tool-specific properties. "customizations": { diff --git a/nf_core/pipeline-template/.devcontainer/setup.sh b/nf_core/pipeline-template/.devcontainer/setup.sh new file mode 100644 index 0000000000..371f6c7407 --- /dev/null +++ b/nf_core/pipeline-template/.devcontainer/setup.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +# Customise the terminal command prompt +printf "export PS1='\\[\\e[3;36m\\]\${PWD#/workspaces/} ->\\[\\e[0m\\] '\n" >> $HOME/.bashrc +export PS1='\[\e[3;36m\]${PWD#/workspaces/} ->\[\e[0m\] ' + +# Update Nextflow +nextflow self-update From 3dff96d6569ac58aacc3f12db98340dba8ed34ba Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Wed, 28 May 2025 12:20:55 +0200 Subject: [PATCH 47/79] Remove testing Dockerfiles --- .../devcontainer_gitpod.Dockerfile | 67 ------------------- .../devcontainer/seqeracontainer.Dockerfile | 19 ------ 2 files changed, 86 deletions(-) delete mode 100644 nf_core/devcontainer/devcontainer_gitpod.Dockerfile delete mode 100644 nf_core/devcontainer/seqeracontainer.Dockerfile diff --git a/nf_core/devcontainer/devcontainer_gitpod.Dockerfile b/nf_core/devcontainer/devcontainer_gitpod.Dockerfile deleted file mode 100644 index a0d7779e28..0000000000 --- a/nf_core/devcontainer/devcontainer_gitpod.Dockerfile +++ /dev/null @@ -1,67 +0,0 @@ -# Test build locally before making a PR (from project root directory) -# docker build . -t devcontainer:local -f nf_core/devcontainer/devcontainer.Dockerfile - -# See https://docs.renovatebot.com/docker/#digest-pinning for why a digest is used. -FROM gitpod/workspace-base@sha256:7f35e401405c38ebc1185dfc3d6c066f73a524e8b86641453ea4690cc5c24fb6 - -USER root - -# Install util tools. -# software-properties-common is needed to add ppa support for Apptainer installation -RUN apt-get update --quiet && \ - apt-get install --quiet --yes --no-install-recommends \ - apt-transport-https \ - apt-utils \ - sudo \ - git \ - less \ - wget \ - curl \ - tree \ - graphviz \ - software-properties-common && \ - add-apt-repository -y ppa:apptainer/ppa && \ - apt-get update --quiet && \ - apt-get install --quiet --yes apptainer && \ - wget --quiet https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh && \ - bash Miniforge3-Linux-x86_64.sh -b -p /opt/conda && \ - rm Miniforge3-Linux-x86_64.sh && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* - -# Set PATH for Conda -ENV PATH="/opt/conda/bin:$PATH" - -# Add the nf-core source files to the image -COPY . /usr/src/nf_core -WORKDIR /usr/src/nf_core - -# Change ownership for gitpod -RUN chown -R gitpod:gitpod /opt/conda /usr/src/nf_core - -# Change user to gitpod -USER gitpod - -# Install nextflow, nf-core, nf-test, and other useful tools -RUN conda config --add channels bioconda && \ - conda config --add channels conda-forge && \ - conda config --set channel_priority strict && \ - conda install --quiet --yes --update-all --name base \ - nextflow \ - nf-test \ - prettier \ - pre-commit \ - ruff \ - mypy \ - openjdk \ - pytest-workflow && \ - conda clean --all --force-pkgs-dirs --yes - -# Update Nextflow and Install nf-core -RUN nextflow self-update && \ - python -m pip install . --no-cache-dir - -# Setup pdiff for nf-test diffs -ENV NFT_DIFF="pdiff" -ENV NFT_DIFF_ARGS="--line-numbers --expand-tabs=2" -ENV JAVA_TOOL_OPTIONS= diff --git a/nf_core/devcontainer/seqeracontainer.Dockerfile b/nf_core/devcontainer/seqeracontainer.Dockerfile deleted file mode 100644 index 5546a17e9f..0000000000 --- a/nf_core/devcontainer/seqeracontainer.Dockerfile +++ /dev/null @@ -1,19 +0,0 @@ -# Seqera Container Url: https://wave.seqera.io/view/builds/bd-eeb39fa4eeaed3f3_1 -FROM community.wave.seqera.io/library/nextflow_nf-test_apptainer_curl_pruned:eeb39fa4eeaed3f3 - -# TODO: Create unprivileged user? -> root used by default in seqera images - -# Install docker (Note: requires mounting /var/run/docker.sock) -RUN curl -sSL https://get.docker.com/ | sh - -# Add the nf-core source files to the image -COPY . /usr/src/nf_core -WORKDIR /usr/src/nf_core - -# Update Nextflow and Install nf-core -RUN python -m pip install . --no-cache-dir - -# Setup pdiff for nf-test diffs -ENV NFT_DIFF="pdiff" -ENV NFT_DIFF_ARGS="--line-numbers --expand-tabs=2" -ENV JAVA_TOOL_OPTIONS= From a7b5c484c1e098990b3e418b690536a22245b6df Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Mon, 14 Jul 2025 12:41:12 +0200 Subject: [PATCH 48/79] Fix base image version --- nf_core/devcontainer/devcontainer.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 0fe28f921a..5aa2c95cdb 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -2,7 +2,7 @@ # 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 +FROM ghcr.io/nextflow-io/training@sha256:97cce091b2c786f8fbd86f470e59d096dff546fe07941cf0e97421b6f95333e2FROM # Change user to vscode USER vscode From 4a556518cd5d08929e9c084e57c279e8e5a103da Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Mon, 14 Jul 2025 12:47:56 +0200 Subject: [PATCH 49/79] Fix sha typo --- nf_core/devcontainer/devcontainer.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile index 5aa2c95cdb..458d274dfa 100644 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ b/nf_core/devcontainer/devcontainer.Dockerfile @@ -2,7 +2,7 @@ # docker build . -t devcontainer:local -f nf_core/devcontainer/devcontainer.Dockerfile # Uses mcr.microsoft.com/devcontainers/base:ubuntu -FROM ghcr.io/nextflow-io/training@sha256:97cce091b2c786f8fbd86f470e59d096dff546fe07941cf0e97421b6f95333e2FROM +FROM ghcr.io/nextflow-io/training@sha256:97cce091b2c786f8fbd86f470e59d096dff546fe07941cf0e97421b6f95333e2 # Change user to vscode USER vscode From cd292aa6988bc013272d4dd6f438efc9262a8172 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Mon, 14 Jul 2025 11:43:49 +0000 Subject: [PATCH 50/79] WIP: Build locally for testing image changes --- .devcontainer/devcontainer.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index ac18733f70..e151c2f3f9 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,12 @@ { "name": "nfcore", - "image": "nfcore/devcontainer:latest", + + //"image": "nfcore/devcontainer:latest", + // ToDo: Build locally for testing + "build": { + "dockerfile": "../nf_core/devcontainer/devcontainer.Dockerfile", + "context": ".." + }, "features": { "ghcr.io/devcontainers/features/docker-in-docker:2": {} From 2f5574631f2be32eeae11c98be363c1fce79af46 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Mon, 14 Jul 2025 18:51:11 +0200 Subject: [PATCH 51/79] Remove container build --- .devcontainer/devcontainer.json | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index e151c2f3f9..4305d009e2 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,12 +1,7 @@ { "name": "nfcore", - //"image": "nfcore/devcontainer:latest", - // ToDo: Build locally for testing - "build": { - "dockerfile": "../nf_core/devcontainer/devcontainer.Dockerfile", - "context": ".." - }, + "image": "nfcore/devcontainer:latest", "features": { "ghcr.io/devcontainers/features/docker-in-docker:2": {} From df3bd4bc126c68377fa9e3c5c573a964eebdaa92 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Thu, 17 Jul 2025 10:10:26 +0200 Subject: [PATCH 52/79] Change to root user --- .devcontainer/devcontainer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 4305d009e2..9a5d300bdb 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -7,7 +7,8 @@ "ghcr.io/devcontainers/features/docker-in-docker:2": {} }, - "remoteUser": "vscode", + "remoteUser": "root", + "privileged": true, // Configure tool-specific properties. "customizations": { From 7de59cb86ccce9c0c5021ec26e4794c4150dd356 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Thu, 17 Jul 2025 10:12:05 +0200 Subject: [PATCH 53/79] Add apptainer as local feature --- .devcontainer/devcontainer.json | 3 ++- .../apptainer/devcontainer-feature.json | 5 +++++ .devcontainer/local-features/apptainer/install.sh | 15 +++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 .devcontainer/local-features/apptainer/devcontainer-feature.json create mode 100755 .devcontainer/local-features/apptainer/install.sh diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 9a5d300bdb..f540078b88 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -4,7 +4,8 @@ "image": "nfcore/devcontainer:latest", "features": { - "ghcr.io/devcontainers/features/docker-in-docker:2": {} + "ghcr.io/devcontainers/features/docker-in-docker:2": {}, + "./local-features/apptainer": {} }, "remoteUser": "root", diff --git a/.devcontainer/local-features/apptainer/devcontainer-feature.json b/.devcontainer/local-features/apptainer/devcontainer-feature.json new file mode 100644 index 0000000000..7471c46a98 --- /dev/null +++ b/.devcontainer/local-features/apptainer/devcontainer-feature.json @@ -0,0 +1,5 @@ +{ + "id": "apptainer", + "name": "Install Apptainer", + "version": "1.0.0" +} diff --git a/.devcontainer/local-features/apptainer/install.sh b/.devcontainer/local-features/apptainer/install.sh new file mode 100755 index 0000000000..030d1c50bc --- /dev/null +++ b/.devcontainer/local-features/apptainer/install.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +# Install Apptainer (Singularity) + +apt-get update --quiet + +# installs add-apt-repository +apt install --reinstall -y software-properties-common + +add-apt-repository -y ppa:apptainer/ppa + +apt install -y apptainer + +apt-get clean +rm -rf /var/lib/apt/lists/* From fb5ca93fbc23d55f89497c46604dc098c8498e26 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Thu, 17 Jul 2025 10:18:03 +0200 Subject: [PATCH 54/79] Use existing tutorial baseimage and instead mount current folder. --- .devcontainer/devcontainer.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index f540078b88..2f24e22c9c 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,13 +1,18 @@ { "name": "nfcore", - "image": "nfcore/devcontainer:latest", + // Uses mcr.microsoft.com/devcontainers/base:ubuntu + "image": "ghcr.io/nextflow-io/training@sha256:97cce091b2c786f8fbd86f470e59d096dff546fe07941cf0e97421b6f95333e2", "features": { "ghcr.io/devcontainers/features/docker-in-docker:2": {}, "./local-features/apptainer": {} }, + // Mount full current path to make mounting into docker-from-docker work + "workspaceMount": "source=${localWorkspaceFolder},target=${localWorkspaceFolder},type=bind", + "workspaceFolder": "${localWorkspaceFolder}", + "remoteUser": "root", "privileged": true, From 403f3e3f39c90fdff6ea17d85839460c99531560 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Thu, 17 Jul 2025 10:20:14 +0200 Subject: [PATCH 55/79] Remove docker-in-docker feature to avoid interference with parent feature docker-outside-of-docker --- .devcontainer/devcontainer.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 2f24e22c9c..c4f0980f0d 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -5,11 +5,10 @@ "image": "ghcr.io/nextflow-io/training@sha256:97cce091b2c786f8fbd86f470e59d096dff546fe07941cf0e97421b6f95333e2", "features": { - "ghcr.io/devcontainers/features/docker-in-docker:2": {}, "./local-features/apptainer": {} }, - // Mount full current path to make mounting into docker-from-docker work + // Mount full current path to make mounting into docker-outside-of-docker work "workspaceMount": "source=${localWorkspaceFolder},target=${localWorkspaceFolder},type=bind", "workspaceFolder": "${localWorkspaceFolder}", From 24a05c7204e66802c44788bfcd417005d3842c51 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Thu, 17 Jul 2025 10:21:35 +0200 Subject: [PATCH 56/79] Change container prompt to cope with long paths --- .devcontainer/setup.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh index 1416fd3a7d..bb10f7f433 100644 --- a/.devcontainer/setup.sh +++ b/.devcontainer/setup.sh @@ -1,8 +1,9 @@ #!/usr/bin/env bash # Customise the terminal command prompt -printf "export PS1='\\[\\e[3;36m\\]\${PWD#/workspaces/} ->\\[\\e[0m\\] '\n" >> $HOME/.bashrc -export PS1='\[\e[3;36m\]${PWD#/workspaces/} ->\[\e[0m\] ' +echo "export PROMPT_DIRTRIM=2" >> $HOME/.bashrc +echo "export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] '" >> $HOME/.bashrc +export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] ' # Update Nextflow nextflow self-update From c00b89ae2aece4adb781d403a3cd7ae3a8585010 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Thu, 17 Jul 2025 10:22:05 +0200 Subject: [PATCH 57/79] update welcome message --- .devcontainer/setup.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh index bb10f7f433..e1c10414bf 100644 --- a/.devcontainer/setup.sh +++ b/.devcontainer/setup.sh @@ -13,3 +13,6 @@ python -m pip install -r requirements-dev.txt -e . --no-cache-dir # Install pre-commit hooks pre-commit install --install-hooks + +# Update welcome message +echo "Welcome to the nf-core/tools devcontainer!" > /usr/local/etc/vscode-dev-containers/first-run-notice.txt From 0398115a04e30c4f5d4cbdf7e0db39402b2c9982 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Thu, 17 Jul 2025 10:25:21 +0200 Subject: [PATCH 58/79] Remove obsolete Dockerfile --- nf_core/devcontainer/devcontainer.Dockerfile | 21 -------------------- 1 file changed, 21 deletions(-) delete mode 100644 nf_core/devcontainer/devcontainer.Dockerfile diff --git a/nf_core/devcontainer/devcontainer.Dockerfile b/nf_core/devcontainer/devcontainer.Dockerfile deleted file mode 100644 index 458d274dfa..0000000000 --- a/nf_core/devcontainer/devcontainer.Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -# Test build locally before making a PR (from project root directory) -# docker build . -t devcontainer:local -f nf_core/devcontainer/devcontainer.Dockerfile - -# Uses mcr.microsoft.com/devcontainers/base:ubuntu -FROM ghcr.io/nextflow-io/training@sha256:97cce091b2c786f8fbd86f470e59d096dff546fe07941cf0e97421b6f95333e2 - -# Change user to vscode -USER vscode - -# Add the nf-core source files to the image -COPY --chown=vscode:vscode . /usr/src/nf_core -WORKDIR /usr/src/nf_core - -# Change ownership of conda and nextflow bin -RUN sudo chown -R vscode:vscode /usr/local/bin/ && \ - sudo chown -R vscode:vscode /opt/conda - -# Install apptainer via conda -RUN conda install --quiet --yes --update-all --name base \ - conda-forge::apptainer>=1.4.1 && \ - conda clean --all --force-pkgs-dirs --yes From d99a89660a0d7f2e609eabd7af616593268a64f5 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Thu, 17 Jul 2025 10:28:49 +0200 Subject: [PATCH 59/79] Change template devcontainer to reuse training base image, fix docker in container, change to root user --- .../.devcontainer/devcontainer.json | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/nf_core/pipeline-template/.devcontainer/devcontainer.json b/nf_core/pipeline-template/.devcontainer/devcontainer.json index d8ef9f325d..b426a68425 100644 --- a/nf_core/pipeline-template/.devcontainer/devcontainer.json +++ b/nf_core/pipeline-template/.devcontainer/devcontainer.json @@ -1,11 +1,15 @@ { "name": "nfcore", - "image": "nfcore/devcontainer:latest", - "remoteUser": "vscode", - "features": { - "ghcr.io/devcontainers/features/docker-in-docker:2": {} - }, + // Uses mcr.microsoft.com/devcontainers/base:ubuntu + "image": "ghcr.io/nextflow-io/training@sha256:97cce091b2c786f8fbd86f470e59d096dff546fe07941cf0e97421b6f95333e2", + + "remoteUser": "root", + "privileged": true, + + // Mount full current path to make mounting into docker-outside-of-docker work + "workspaceMount": "source=${localWorkspaceFolder},target=${localWorkspaceFolder},type=bind", + "workspaceFolder": "${localWorkspaceFolder}", // Configure tool-specific properties. "customizations": { From 65e8cb418ad7857245aa557a5c0010d61d6ef4f1 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Thu, 17 Jul 2025 10:29:36 +0200 Subject: [PATCH 60/79] Custom prompt to cope with long paths. Updates welcome message --- nf_core/pipeline-template/.devcontainer/setup.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nf_core/pipeline-template/.devcontainer/setup.sh b/nf_core/pipeline-template/.devcontainer/setup.sh index 371f6c7407..7833653256 100644 --- a/nf_core/pipeline-template/.devcontainer/setup.sh +++ b/nf_core/pipeline-template/.devcontainer/setup.sh @@ -1,8 +1,12 @@ #!/usr/bin/env bash # Customise the terminal command prompt -printf "export PS1='\\[\\e[3;36m\\]\${PWD#/workspaces/} ->\\[\\e[0m\\] '\n" >> $HOME/.bashrc -export PS1='\[\e[3;36m\]${PWD#/workspaces/} ->\[\e[0m\] ' +echo "export PROMPT_DIRTRIM=2" >> $HOME/.bashrc +echo "export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] '" >> $HOME/.bashrc +export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] ' # Update Nextflow nextflow self-update + +# Update welcome message +echo "Welcome to the nf-core/tools devcontainer!" > /usr/local/etc/vscode-dev-containers/first-run-notice.txt From 19066ee7a8dc28ceebd84a250314a100e77a484c Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Thu, 17 Jul 2025 10:29:42 +0200 Subject: [PATCH 61/79] Custom prompt to cope with long paths. Updates welcome message --- nf_core/pipeline-template/.devcontainer/setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nf_core/pipeline-template/.devcontainer/setup.sh b/nf_core/pipeline-template/.devcontainer/setup.sh index 7833653256..c496948752 100644 --- a/nf_core/pipeline-template/.devcontainer/setup.sh +++ b/nf_core/pipeline-template/.devcontainer/setup.sh @@ -9,4 +9,4 @@ export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] ' nextflow self-update # Update welcome message -echo "Welcome to the nf-core/tools devcontainer!" > /usr/local/etc/vscode-dev-containers/first-run-notice.txt +echo "Welcome to the nf-core pipeline devcontainer!" > /usr/local/etc/vscode-dev-containers/first-run-notice.txt From d82eac5920eac7f161410a9fb1e3a6fe059caf5a Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Thu, 17 Jul 2025 10:36:10 +0200 Subject: [PATCH 62/79] Add nf-core, pre-commit hook install to setup. Update welcome message --- nf_core/pipeline-template/.devcontainer/setup.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nf_core/pipeline-template/.devcontainer/setup.sh b/nf_core/pipeline-template/.devcontainer/setup.sh index c496948752..bc22cabcf7 100644 --- a/nf_core/pipeline-template/.devcontainer/setup.sh +++ b/nf_core/pipeline-template/.devcontainer/setup.sh @@ -8,5 +8,11 @@ export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] ' # Update Nextflow nextflow self-update +# Install nf-core tools +python -m pip install nf-core + +# Install pre-commit hooks +pre-commit install --install-hooks + # Update welcome message echo "Welcome to the nf-core pipeline devcontainer!" > /usr/local/etc/vscode-dev-containers/first-run-notice.txt From 685a8d8fbdde343454a71a467835c8e3b845734e Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Thu, 17 Jul 2025 10:36:41 +0200 Subject: [PATCH 63/79] Add local features nf-test, apptainer. (Util fixed in parent) --- .../.devcontainer/devcontainer.json | 5 +++++ .../apptainer/devcontainer-feature.json | 5 +++++ .../local-features/apptainer/install.sh | 15 +++++++++++++++ .../nf-test/devcontainer-feature.json | 5 +++++ .../local-features/nf-test/install.sh | 7 +++++++ 5 files changed, 37 insertions(+) create mode 100644 nf_core/pipeline-template/.devcontainer/local-features/apptainer/devcontainer-feature.json create mode 100755 nf_core/pipeline-template/.devcontainer/local-features/apptainer/install.sh create mode 100644 nf_core/pipeline-template/.devcontainer/local-features/nf-test/devcontainer-feature.json create mode 100755 nf_core/pipeline-template/.devcontainer/local-features/nf-test/install.sh diff --git a/nf_core/pipeline-template/.devcontainer/devcontainer.json b/nf_core/pipeline-template/.devcontainer/devcontainer.json index b426a68425..10092ecfcb 100644 --- a/nf_core/pipeline-template/.devcontainer/devcontainer.json +++ b/nf_core/pipeline-template/.devcontainer/devcontainer.json @@ -11,6 +11,11 @@ "workspaceMount": "source=${localWorkspaceFolder},target=${localWorkspaceFolder},type=bind", "workspaceFolder": "${localWorkspaceFolder}", + "features": { + ".local-features/apptainer": {}, + ".local-features/nf-test": {} + }, + // Configure tool-specific properties. "customizations": { // Configure properties specific to VS Code. diff --git a/nf_core/pipeline-template/.devcontainer/local-features/apptainer/devcontainer-feature.json b/nf_core/pipeline-template/.devcontainer/local-features/apptainer/devcontainer-feature.json new file mode 100644 index 0000000000..7471c46a98 --- /dev/null +++ b/nf_core/pipeline-template/.devcontainer/local-features/apptainer/devcontainer-feature.json @@ -0,0 +1,5 @@ +{ + "id": "apptainer", + "name": "Install Apptainer", + "version": "1.0.0" +} diff --git a/nf_core/pipeline-template/.devcontainer/local-features/apptainer/install.sh b/nf_core/pipeline-template/.devcontainer/local-features/apptainer/install.sh new file mode 100755 index 0000000000..030d1c50bc --- /dev/null +++ b/nf_core/pipeline-template/.devcontainer/local-features/apptainer/install.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +# Install Apptainer (Singularity) + +apt-get update --quiet + +# installs add-apt-repository +apt install --reinstall -y software-properties-common + +add-apt-repository -y ppa:apptainer/ppa + +apt install -y apptainer + +apt-get clean +rm -rf /var/lib/apt/lists/* diff --git a/nf_core/pipeline-template/.devcontainer/local-features/nf-test/devcontainer-feature.json b/nf_core/pipeline-template/.devcontainer/local-features/nf-test/devcontainer-feature.json new file mode 100644 index 0000000000..f7647ff041 --- /dev/null +++ b/nf_core/pipeline-template/.devcontainer/local-features/nf-test/devcontainer-feature.json @@ -0,0 +1,5 @@ +{ + "id": "nf-test", + "name": "Install nf-test", + "version": "1.0.0" +} diff --git a/nf_core/pipeline-template/.devcontainer/local-features/nf-test/install.sh b/nf_core/pipeline-template/.devcontainer/local-features/nf-test/install.sh new file mode 100755 index 0000000000..c903aaaf02 --- /dev/null +++ b/nf_core/pipeline-template/.devcontainer/local-features/nf-test/install.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +# download and install +wget -qO- https://get.nf-test.com | bash + +# move to location on the path +mv nf-test "$HOME/.local/bin" From def9bf27fbcba2d768c41b3b840cf9801dd9435f Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Thu, 17 Jul 2025 10:37:50 +0200 Subject: [PATCH 64/79] Add nf-test also to tools devcontainer as local feature --- .devcontainer/devcontainer.json | 3 ++- .../local-features/nf-test/devcontainer-feature.json | 5 +++++ .devcontainer/local-features/nf-test/install.sh | 7 +++++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 .devcontainer/local-features/nf-test/devcontainer-feature.json create mode 100755 .devcontainer/local-features/nf-test/install.sh diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index c4f0980f0d..9c1ab5e886 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -5,7 +5,8 @@ "image": "ghcr.io/nextflow-io/training@sha256:97cce091b2c786f8fbd86f470e59d096dff546fe07941cf0e97421b6f95333e2", "features": { - "./local-features/apptainer": {} + "./local-features/apptainer": {}, + "./local-features/nf-test": {} }, // Mount full current path to make mounting into docker-outside-of-docker work diff --git a/.devcontainer/local-features/nf-test/devcontainer-feature.json b/.devcontainer/local-features/nf-test/devcontainer-feature.json new file mode 100644 index 0000000000..f7647ff041 --- /dev/null +++ b/.devcontainer/local-features/nf-test/devcontainer-feature.json @@ -0,0 +1,5 @@ +{ + "id": "nf-test", + "name": "Install nf-test", + "version": "1.0.0" +} diff --git a/.devcontainer/local-features/nf-test/install.sh b/.devcontainer/local-features/nf-test/install.sh new file mode 100755 index 0000000000..c903aaaf02 --- /dev/null +++ b/.devcontainer/local-features/nf-test/install.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +# download and install +wget -qO- https://get.nf-test.com | bash + +# move to location on the path +mv nf-test "$HOME/.local/bin" From 4918d6cebb4eb5ef637bedfe5b9c92be3540f47b Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Fri, 18 Jul 2025 14:55:07 +0200 Subject: [PATCH 65/79] Adapt git workflow to build with devcontainer ci --- .github/workflows/push_dockerhub_dev.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/push_dockerhub_dev.yml b/.github/workflows/push_dockerhub_dev.yml index 92cabb06e5..cb7fa474d2 100644 --- a/.github/workflows/push_dockerhub_dev.yml +++ b/.github/workflows/push_dockerhub_dev.yml @@ -28,8 +28,14 @@ jobs: - name: Build nfcore/tools:dev docker image run: docker build --no-cache . -t nfcore/tools:dev - - name: Build nfcore/devcontainer:dev docker image - run: docker build --no-cache . --file nf_core/devcontainer/devcontainer.Dockerfile -t nfcore/devcontainer:dev + - name: Build nfcore/devcontainer:dev devcontainer image + uses: devcontainers/ci@v0.3 + with: + configFile: .devcontainer/build-devcontainer/devcontainer.json + imageName: nfcore/devcontainer + imageTag: dev + platform: linux/amd64,linux/arm64 + push: false - name: Push Docker images to DockerHub (dev) run: | From b1079a587097a9b8a561254767bb6ae05858b298 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Fri, 18 Jul 2025 14:55:38 +0200 Subject: [PATCH 66/79] Adds devcontaner config for building. --- .../build-devcontainer/devcontainer.json | 32 +++++++++++++++++++ .devcontainer/build-devcontainer/setup.sh | 18 +++++++++++ 2 files changed, 50 insertions(+) create mode 100644 .devcontainer/build-devcontainer/devcontainer.json create mode 100644 .devcontainer/build-devcontainer/setup.sh diff --git a/.devcontainer/build-devcontainer/devcontainer.json b/.devcontainer/build-devcontainer/devcontainer.json new file mode 100644 index 0000000000..fb5985fcb0 --- /dev/null +++ b/.devcontainer/build-devcontainer/devcontainer.json @@ -0,0 +1,32 @@ +{ + "name": "nfcore-devcontainer-build", + + // Uses mcr.microsoft.com/devcontainers/base:ubuntu + "image": "ghcr.io/nextflow-io/training@sha256:97cce091b2c786f8fbd86f470e59d096dff546fe07941cf0e97421b6f95333e2", + + "features": { + "./local-features/apptainer": {}, + "./local-features/nf-test": {} + }, + + // Mount full current path to make mounting into docker-outside-of-docker work + //"workspaceMount": "source=${localWorkspaceFolder},target=${localWorkspaceFolder},type=bind", + //"workspaceFolder": "${localWorkspaceFolder}", + + "remoteUser": "root", + "privileged": true, + + // Configure tool-specific properties. + "customizations": { + // Configure properties specific to VS Code. + "vscode": { + // Set *default* container specific settings.json values on container create. + "settings": { + "python.defaultInterpreterPath": "/opt/conda/bin/python" + }, + + // Add the IDs of extensions you want installed when the container is created. + "extensions": ["ms-python.python", "ms-python.vscode-pylance", "nf-core.nf-core-extensionpack"] + } + } +} diff --git a/.devcontainer/build-devcontainer/setup.sh b/.devcontainer/build-devcontainer/setup.sh new file mode 100644 index 0000000000..e1c10414bf --- /dev/null +++ b/.devcontainer/build-devcontainer/setup.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +# Customise the terminal command prompt +echo "export PROMPT_DIRTRIM=2" >> $HOME/.bashrc +echo "export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] '" >> $HOME/.bashrc +export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] ' + +# Update Nextflow +nextflow self-update + +# Install nf-core tools in editable mode +python -m pip install -r requirements-dev.txt -e . --no-cache-dir + +# Install pre-commit hooks +pre-commit install --install-hooks + +# Update welcome message +echo "Welcome to the nf-core/tools devcontainer!" > /usr/local/etc/vscode-dev-containers/first-run-notice.txt From 9a9c2669112623b8731ef51b55dccd968d0cc32a Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Fri, 18 Jul 2025 14:57:45 +0200 Subject: [PATCH 67/79] Simplified devcontainer config for running. Removes all feature installations --- .devcontainer/devcontainer.json | 9 +-------- .devcontainer/setup.sh | 14 -------------- 2 files changed, 1 insertion(+), 22 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 9c1ab5e886..3214aa7ad2 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,13 +1,6 @@ { "name": "nfcore", - - // Uses mcr.microsoft.com/devcontainers/base:ubuntu - "image": "ghcr.io/nextflow-io/training@sha256:97cce091b2c786f8fbd86f470e59d096dff546fe07941cf0e97421b6f95333e2", - - "features": { - "./local-features/apptainer": {}, - "./local-features/nf-test": {} - }, + "image": "nfcore/devcontainer", // ToDo: Add version hash once available // Mount full current path to make mounting into docker-outside-of-docker work "workspaceMount": "source=${localWorkspaceFolder},target=${localWorkspaceFolder},type=bind", diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh index e1c10414bf..5f880cfa47 100644 --- a/.devcontainer/setup.sh +++ b/.devcontainer/setup.sh @@ -1,18 +1,4 @@ #!/usr/bin/env bash -# Customise the terminal command prompt -echo "export PROMPT_DIRTRIM=2" >> $HOME/.bashrc -echo "export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] '" >> $HOME/.bashrc -export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] ' - -# Update Nextflow -nextflow self-update - -# Install nf-core tools in editable mode -python -m pip install -r requirements-dev.txt -e . --no-cache-dir - -# Install pre-commit hooks -pre-commit install --install-hooks - # Update welcome message echo "Welcome to the nf-core/tools devcontainer!" > /usr/local/etc/vscode-dev-containers/first-run-notice.txt From 5622095bb3bfd4e3737e77914dba8a52a95c5541 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Fri, 18 Jul 2025 15:00:57 +0200 Subject: [PATCH 68/79] Change workflow for release to build with devcontainer ci --- .github/workflows/push_dockerhub_release.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/push_dockerhub_release.yml b/.github/workflows/push_dockerhub_release.yml index 895fa37669..0e40395c2f 100644 --- a/.github/workflows/push_dockerhub_release.yml +++ b/.github/workflows/push_dockerhub_release.yml @@ -28,8 +28,14 @@ jobs: - name: Build nfcore/tools:latest docker image run: docker build --no-cache . -t nfcore/tools:latest - - name: Build nfcore/devcontainer:latest docker image - run: docker build --no-cache . --file nf_core/devcontainer/devcontainer.Dockerfile -t nfcore/devcontainer:latest + - name: Build nfcore/devcontainer:latest devcontainer image + uses: devcontainers/ci@v0.3 + with: + configFile: .devcontainer/build-devcontainer/devcontainer.json + imageName: nfcore/devcontainer + imageTag: latest + platform: linux/amd64,linux/arm64 + push: false - name: Push Docker images to DockerHub (release) run: | From 491ec957b41cb54bca3b3b2b677679105e2f3036 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Fri, 18 Jul 2025 15:03:20 +0200 Subject: [PATCH 69/79] Change to using prebuild image. Remove local feature installs. Simplify setup.sh --- .../.devcontainer/devcontainer.json | 9 +-------- nf_core/pipeline-template/.devcontainer/setup.sh | 14 -------------- 2 files changed, 1 insertion(+), 22 deletions(-) diff --git a/nf_core/pipeline-template/.devcontainer/devcontainer.json b/nf_core/pipeline-template/.devcontainer/devcontainer.json index 10092ecfcb..785d4dfff8 100644 --- a/nf_core/pipeline-template/.devcontainer/devcontainer.json +++ b/nf_core/pipeline-template/.devcontainer/devcontainer.json @@ -1,8 +1,6 @@ { "name": "nfcore", - - // Uses mcr.microsoft.com/devcontainers/base:ubuntu - "image": "ghcr.io/nextflow-io/training@sha256:97cce091b2c786f8fbd86f470e59d096dff546fe07941cf0e97421b6f95333e2", + "image": "nfcore/devcontainer", // ToDo: Add version hash once available "remoteUser": "root", "privileged": true, @@ -11,11 +9,6 @@ "workspaceMount": "source=${localWorkspaceFolder},target=${localWorkspaceFolder},type=bind", "workspaceFolder": "${localWorkspaceFolder}", - "features": { - ".local-features/apptainer": {}, - ".local-features/nf-test": {} - }, - // Configure tool-specific properties. "customizations": { // Configure properties specific to VS Code. diff --git a/nf_core/pipeline-template/.devcontainer/setup.sh b/nf_core/pipeline-template/.devcontainer/setup.sh index bc22cabcf7..93c2918036 100644 --- a/nf_core/pipeline-template/.devcontainer/setup.sh +++ b/nf_core/pipeline-template/.devcontainer/setup.sh @@ -1,18 +1,4 @@ #!/usr/bin/env bash -# Customise the terminal command prompt -echo "export PROMPT_DIRTRIM=2" >> $HOME/.bashrc -echo "export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] '" >> $HOME/.bashrc -export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] ' - -# Update Nextflow -nextflow self-update - -# Install nf-core tools -python -m pip install nf-core - -# Install pre-commit hooks -pre-commit install --install-hooks - # Update welcome message echo "Welcome to the nf-core pipeline devcontainer!" > /usr/local/etc/vscode-dev-containers/first-run-notice.txt From 2308afcb9c0808615b5b35e6dc59b4e72b85b67d Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Fri, 18 Jul 2025 15:10:32 +0200 Subject: [PATCH 70/79] Fix devcontainers/ci version by sha --- .github/workflows/push_dockerhub_dev.yml | 2 +- .github/workflows/push_dockerhub_release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/push_dockerhub_dev.yml b/.github/workflows/push_dockerhub_dev.yml index cb7fa474d2..afe41833bb 100644 --- a/.github/workflows/push_dockerhub_dev.yml +++ b/.github/workflows/push_dockerhub_dev.yml @@ -29,7 +29,7 @@ jobs: run: docker build --no-cache . -t nfcore/tools:dev - name: Build nfcore/devcontainer:dev devcontainer image - uses: devcontainers/ci@v0.3 + uses: devcontainers/ci@8bf61b26e9c3a98f69cb6ce2f88d24ff59b785c6 # v0.3 with: configFile: .devcontainer/build-devcontainer/devcontainer.json imageName: nfcore/devcontainer diff --git a/.github/workflows/push_dockerhub_release.yml b/.github/workflows/push_dockerhub_release.yml index 0e40395c2f..18f2b9f584 100644 --- a/.github/workflows/push_dockerhub_release.yml +++ b/.github/workflows/push_dockerhub_release.yml @@ -29,7 +29,7 @@ jobs: run: docker build --no-cache . -t nfcore/tools:latest - name: Build nfcore/devcontainer:latest devcontainer image - uses: devcontainers/ci@v0.3 + uses: devcontainers/ci@8bf61b26e9c3a98f69cb6ce2f88d24ff59b785c6 # v0.3 with: configFile: .devcontainer/build-devcontainer/devcontainer.json imageName: nfcore/devcontainer From 355f913c01c23444b1015541a8e2d5f493f6d219 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Fri, 18 Jul 2025 15:15:21 +0200 Subject: [PATCH 71/79] Testing: run workflow on personal feature branch temporarily --- .github/workflows/push_dockerhub_dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/push_dockerhub_dev.yml b/.github/workflows/push_dockerhub_dev.yml index afe41833bb..e928e80f27 100644 --- a/.github/workflows/push_dockerhub_dev.yml +++ b/.github/workflows/push_dockerhub_dev.yml @@ -3,7 +3,7 @@ name: nf-core Docker push (dev) # Runs on nf-core repo releases and push event to 'dev' branch (PR merges) on: push: - branches: [dev] + branches: [dev, issues/3466-gitpod] # Cancel if a newer run is started concurrency: From e1fcc0994a5adc94715a19998dd9953849bed208 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Fri, 18 Jul 2025 15:42:05 +0200 Subject: [PATCH 72/79] Testing: Add workflow_dispatch to run wf manually --- .github/workflows/push_dockerhub_dev.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/push_dockerhub_dev.yml b/.github/workflows/push_dockerhub_dev.yml index e928e80f27..17e93fb84a 100644 --- a/.github/workflows/push_dockerhub_dev.yml +++ b/.github/workflows/push_dockerhub_dev.yml @@ -2,8 +2,9 @@ name: nf-core Docker push (dev) # This builds the docker image and pushes it to DockerHub # Runs on nf-core repo releases and push event to 'dev' branch (PR merges) on: - push: - branches: [dev, issues/3466-gitpod] + workflow_dispatch + #push: + # branches: [dev, issues/3466-gitpod] # Cancel if a newer run is started concurrency: From 855959347740d56c7d55e4f7fef924563385c60e Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Fri, 18 Jul 2025 15:58:48 +0200 Subject: [PATCH 73/79] Testing: Remove repo constraint --- .github/workflows/push_dockerhub_dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/push_dockerhub_dev.yml b/.github/workflows/push_dockerhub_dev.yml index 17e93fb84a..4b003bd0a9 100644 --- a/.github/workflows/push_dockerhub_dev.yml +++ b/.github/workflows/push_dockerhub_dev.yml @@ -16,7 +16,7 @@ jobs: name: Push new Docker image to Docker Hub (dev) runs-on: ubuntu-latest # Only run for the nf-core repo, for releases and merged PRs - if: ${{ github.repository == 'nf-core/tools' }} + #if: ${{ github.repository == 'nf-core/tools' }} env: DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} DOCKERHUB_PASS: ${{ secrets.DOCKERHUB_PASS }} From ce0cf8870f9b34ffd940f87bb3d698eb0746238c Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Fri, 18 Jul 2025 16:02:50 +0200 Subject: [PATCH 74/79] Move local features into build-devcontainer --- .../local-features/apptainer/devcontainer-feature.json | 0 .../{ => build-devcontainer}/local-features/apptainer/install.sh | 0 .../local-features/nf-test/devcontainer-feature.json | 0 .../{ => build-devcontainer}/local-features/nf-test/install.sh | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename .devcontainer/{ => build-devcontainer}/local-features/apptainer/devcontainer-feature.json (100%) rename .devcontainer/{ => build-devcontainer}/local-features/apptainer/install.sh (100%) rename .devcontainer/{ => build-devcontainer}/local-features/nf-test/devcontainer-feature.json (100%) rename .devcontainer/{ => build-devcontainer}/local-features/nf-test/install.sh (100%) diff --git a/.devcontainer/local-features/apptainer/devcontainer-feature.json b/.devcontainer/build-devcontainer/local-features/apptainer/devcontainer-feature.json similarity index 100% rename from .devcontainer/local-features/apptainer/devcontainer-feature.json rename to .devcontainer/build-devcontainer/local-features/apptainer/devcontainer-feature.json diff --git a/.devcontainer/local-features/apptainer/install.sh b/.devcontainer/build-devcontainer/local-features/apptainer/install.sh similarity index 100% rename from .devcontainer/local-features/apptainer/install.sh rename to .devcontainer/build-devcontainer/local-features/apptainer/install.sh diff --git a/.devcontainer/local-features/nf-test/devcontainer-feature.json b/.devcontainer/build-devcontainer/local-features/nf-test/devcontainer-feature.json similarity index 100% rename from .devcontainer/local-features/nf-test/devcontainer-feature.json rename to .devcontainer/build-devcontainer/local-features/nf-test/devcontainer-feature.json diff --git a/.devcontainer/local-features/nf-test/install.sh b/.devcontainer/build-devcontainer/local-features/nf-test/install.sh similarity index 100% rename from .devcontainer/local-features/nf-test/install.sh rename to .devcontainer/build-devcontainer/local-features/nf-test/install.sh From 22bbccf72c13344ee51ab9c319e4ad59403757ec Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Fri, 18 Jul 2025 19:57:30 +0200 Subject: [PATCH 75/79] Use no cache for build --- .github/workflows/push_dockerhub_dev.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/push_dockerhub_dev.yml b/.github/workflows/push_dockerhub_dev.yml index 4b003bd0a9..0137558632 100644 --- a/.github/workflows/push_dockerhub_dev.yml +++ b/.github/workflows/push_dockerhub_dev.yml @@ -37,6 +37,7 @@ jobs: imageTag: dev platform: linux/amd64,linux/arm64 push: false + noCache: true - name: Push Docker images to DockerHub (dev) run: | From ca5fba7dc2501c2adf0047e643f847df8e44ef23 Mon Sep 17 00:00:00 2001 From: Julian Flesch Date: Sat, 19 Jul 2025 00:03:55 +0200 Subject: [PATCH 76/79] testing buildx config --- .github/workflows/push_dockerhub_dev.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/push_dockerhub_dev.yml b/.github/workflows/push_dockerhub_dev.yml index 0137558632..0ebace555a 100644 --- a/.github/workflows/push_dockerhub_dev.yml +++ b/.github/workflows/push_dockerhub_dev.yml @@ -26,6 +26,9 @@ jobs: - name: Check out code uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Build nfcore/tools:dev docker image run: docker build --no-cache . -t nfcore/tools:dev From 60a01549b1e5e973c01af6859a3e4eba15bd4be5 Mon Sep 17 00:00:00 2001 From: JulianFlesch Date: Sat, 19 Jul 2025 01:55:20 +0200 Subject: [PATCH 77/79] Testing container deploy --- .github/workflows/push_dockerhub_dev.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/push_dockerhub_dev.yml b/.github/workflows/push_dockerhub_dev.yml index 0ebace555a..aa192b1517 100644 --- a/.github/workflows/push_dockerhub_dev.yml +++ b/.github/workflows/push_dockerhub_dev.yml @@ -30,14 +30,14 @@ jobs: uses: docker/setup-buildx-action@v3 - name: Build nfcore/tools:dev docker image - run: docker build --no-cache . -t nfcore/tools:dev + run: docker build --no-cache . -t fljulian/nfcore-devcontainer:ts-dev - name: Build nfcore/devcontainer:dev devcontainer image uses: devcontainers/ci@8bf61b26e9c3a98f69cb6ce2f88d24ff59b785c6 # v0.3 with: configFile: .devcontainer/build-devcontainer/devcontainer.json - imageName: nfcore/devcontainer - imageTag: dev + imageName: fljulian/nfcore-devcontainer + imageTag: dc-dev platform: linux/amd64,linux/arm64 push: false noCache: true @@ -45,5 +45,5 @@ jobs: - name: Push Docker images to DockerHub (dev) run: | echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin - docker push nfcore/tools:dev - docker push nfcore/devcontainer:dev + docker push fljulian/nfcore-devcontainer:ts-dev + docker push fljulian/nfcore-devcontainer:dc-dev From 66755bee0475dbd993ebbde544e2ad38e02ef70a Mon Sep 17 00:00:00 2001 From: JulianFlesch Date: Sat, 19 Jul 2025 02:08:54 +0200 Subject: [PATCH 78/79] Testing deployed image in codespaces --- .devcontainer/devcontainer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 3214aa7ad2..fa9d0b81de 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "name": "nfcore", - "image": "nfcore/devcontainer", // ToDo: Add version hash once available + "image": "fljulian/nfcore-devcontainer:dc-dev", // ToDo: Add version hash once available // Mount full current path to make mounting into docker-outside-of-docker work "workspaceMount": "source=${localWorkspaceFolder},target=${localWorkspaceFolder},type=bind", From b9a5e946814fbaaf61141267231094bb9f15ddc5 Mon Sep 17 00:00:00 2001 From: JulianFlesch Date: Sat, 19 Jul 2025 02:15:45 +0200 Subject: [PATCH 79/79] Testing: Limit to only devcontainer image build+push --- .github/workflows/push_dockerhub_dev.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/push_dockerhub_dev.yml b/.github/workflows/push_dockerhub_dev.yml index aa192b1517..07071d4b80 100644 --- a/.github/workflows/push_dockerhub_dev.yml +++ b/.github/workflows/push_dockerhub_dev.yml @@ -29,15 +29,15 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Build nfcore/tools:dev docker image - run: docker build --no-cache . -t fljulian/nfcore-devcontainer:ts-dev + #- name: Build nfcore/tools:dev docker image + # run: docker build --no-cache . -t fljulian/nfcore-devcontainer:ts-dev - name: Build nfcore/devcontainer:dev devcontainer image uses: devcontainers/ci@8bf61b26e9c3a98f69cb6ce2f88d24ff59b785c6 # v0.3 with: configFile: .devcontainer/build-devcontainer/devcontainer.json imageName: fljulian/nfcore-devcontainer - imageTag: dc-dev + imageTag: dev platform: linux/amd64,linux/arm64 push: false noCache: true @@ -45,5 +45,6 @@ jobs: - name: Push Docker images to DockerHub (dev) run: | echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin - docker push fljulian/nfcore-devcontainer:ts-dev - docker push fljulian/nfcore-devcontainer:dc-dev + docker push fljulian/nfcore-devcontainer:dev + # docker push fljulian/nfcore-devcontainer:ts-dev +