diff --git a/Dockerfile b/Dockerfile index b958104b..7fef06f9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,36 +1,42 @@ # DOCKER FILE FOR WORKSHOP-NGSINTRO -# 2024 Roy Francis +# 2025 Roy Francis -FROM rocker/verse:4.2.3 +FROM rocker/verse:4.4 LABEL Description="Docker image for NBIS workshop" LABEL Maintainer="roy.francis@nbis.se" LABEL org.opencontainers.image.source="https://github.com/NBISweden/workshop-ngsintro" -ARG QUARTO_VERSION="1.4.549" +#ARG QUARTO_VERSION="1.6.40" RUN apt-get update -y \ + && apt-get clean \ && apt-get install --no-install-recommends -y \ libxml2-dev \ libssl-dev \ libcurl4-openssl-dev \ libudunits2-dev \ - libopenblas-base \ libgdal-dev \ curl \ - && wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ - && apt-get install -y ./google-chrome-stable_current_amd64.deb \ - && rm -rf ./google-chrome-stable_current_amd64.deb \ - && curl -o quarto-linux-amd64.deb -L https://github.com/quarto-dev/quarto-cli/releases/download/v${QUARTO_VERSION}/quarto-${QUARTO_VERSION}-linux-amd64.deb \ - && apt-get install -y ./quarto-linux-amd64.deb \ - && rm -rf ./quarto-linux-amd64.deb \ - && Rscript -e 'install.packages(c("remotes","fontawesome","here","htmlTable","leaflet","readxl","writexl"),repos = "http://cran.us.r-project.org");' \ + #&& wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + #&& apt-get install -y ./google-chrome-stable_current_amd64.deb \ + #&& rm -rf ./google-chrome-stable_current_amd64.deb \ + #&& curl -o quarto-linux-amd64.deb -L https://github.com/quarto-dev/quarto-cli/releases/download/v${QUARTO_VERSION}/quarto-${QUARTO_VERSION}-linux-amd64.deb \ + #&& apt-get install -y ./quarto-linux-amd64.deb \ + #&& rm -rf ./quarto-linux-amd64.deb \ && rm -rf /var/lib/apt/lists/* \ + && install2.r --error --skipinstalled remotes fontawesome here htmlTable leaflet readxl writexl \ + && rm -rf /tmp/downloaded_packages \ && mkdir /qmd /.cache \ && chmod 777 /qmd /.cache -## Required when editing rnaseq -## RUN Rscript -e 'BiocManager::install(c("DESeq2","edgeR","goseq","GO.db","org.Mm.eg.db","reactome.db"));' +USER rstudio + +## Required when editing rnaseq lab +RUN Rscript -e 'install.packages(c("pheatmap","ggrepel"),repos = "http://cran.us.r-project.org"); BiocManager::install(c("DESeq2", "edgeR", "org.Mm.eg.db", "clusterProfiler"));' + WORKDIR /qmd #ENV XDG_CACHE_HOME=/tmp/quarto_cache_home #ENV XDG_DATA_HOME=/tmp/quarto_data_home -CMD quarto render +CMD ["quarto", "render"] +# docker build --platform linux/amd64 -t ghcr.io/nbisweden/workshop-ngsintro:2.3.0 -t ghcr.io/nbisweden/workshop-ngsintro:latest . +# docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd):/work kaczmarj/apptainer build ngsintro.sif docker://ghcr.io/nbisweden/workshop-ngsintro:latest diff --git a/README.md b/README.md index c1ff3cda..f4221b84 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ as the first thing, so that old rendered files are not overwritten. :exclamation: Do not push any rendered .html files or intermediates. +## Docker ### Local build/preview using Docker You can preview changes and build the whole website locally without a local installation of R or dependency packages by using the pre-built Docker image. @@ -47,29 +48,32 @@ docker run --platform linux/amd64 --rm -u 1000:1000 -v ${PWD}:/qmd ghcr.io/nbisw :exclamation: Output files are for local preview only. Do not push any rendered .html files or intermediates. -## Convert HTML slides to PDF +### Convert HTML slides to PDF ``` docker run --platform=linux/amd64 -v $PWD:/work astefanutti/decktape https://nbisweden.github.io/workshop-ngsintro/2403/topics/rnaseq/slide_rnaseq.html /work/slide_rnaseq.pdf ``` -## Repo organisation +### Serving and automatic rendering -The source material is located on the *master* branch (default). The rendered material is located on the *gh-pages* branch. One only needs to update source materials in *master*. Changes pushed to the *master* branch is automatically rendered to the *gh-pages* branch using github actions. +You can use `quarto preview` to serve the site, and handle automatic rebuilding of pages when any `.qmd` file is changed. -:exclamation: Every push rebuilds the whole website using a pre-built docker image. +```bash +# serve the site +docker run --rm -it --platform linux/amd64 -u $(id -u):$(id -g) -v ${PWD}:/qmd -p 8800:8800 ghcr.io/nbisweden/workshop-ngsintro:latest quarto preview --port 8800 --host 0.0.0.0 +``` -This repo is loosely based on the quarto template [specky](https://github.com/royfrancis/specky). +Go to [http://localhost:8800/](http://localhost:8800/) or [http://0.0.0.0:8800](http://0.0.0.0:8800) in your browser. -## Building docker container +### Building your own docker container ```bash # build container -docker build --platform linux/amd64 -t ghcr.io/nbisweden/workshop-ngsintro:2.3.0 -t ghcr.io/nbisweden/workshop-ngsintro:latest . +docker build --platform linux/amd64 -t ghcr.io/nbisweden/workshop-ngsintro:2.4.0 -t ghcr.io/nbisweden/workshop-ngsintro:latest . # push to ghcr # docker login ghcr.io -docker push ghcr.io/nbisweden/workshop-ngsintro:2.3.0 +docker push ghcr.io/nbisweden/workshop-ngsintro:2.4.0 docker push ghcr.io/nbisweden/workshop-ngsintro:latest # run container in the root of the repo @@ -77,16 +81,13 @@ docker run --rm --platform linux/amd64 -u $(id -u):$(id -g) -v ${PWD}:/qmd ghcr. docker run --rm --platform linux/amd64 -u $(id -u):$(id -g) -v ${PWD}:/qmd ghcr.io/nbisweden/workshop-ngsintro:latest quarto render index.qmd ``` -## Serving and automatic rendering +## Repo organisation -You can use `quarto preview` to serve the site, and handle automatic rebuilding of pages when any `.qmd` file is changed. +The source material is located on the *master* branch (default). The rendered material is located on the *gh-pages* branch. One only needs to update source materials in *master*. Changes pushed to the *master* branch is automatically rendered to the *gh-pages* branch using github actions. -```bash -# serve the site -docker run --rm -it --platform linux/amd64 -u $(id -u):$(id -g) -v ${PWD}:/qmd -p 8800:8800 ghcr.io/nbisweden/workshop-ngsintro:latest quarto preview --port 8800 --host 0.0.0.0 -``` +:exclamation: Every push rebuilds the whole website using a pre-built docker image. -Go to [http://localhost:8800/](http://localhost:8800/) or [http://0.0.0.0:8800](http://0.0.0.0:8800) in your browser. +This repo is loosely based on the quarto template [specky](https://github.com/royfrancis/specky). ## Test scripts @@ -98,4 +99,4 @@ The contents of these scripts should use identical steps and tools as the studen --- -**2024** • NBIS • SciLifeLab +**2025** • NBIS • SciLifeLab diff --git a/schedule.xlsx b/schedule.xlsx index 25b9cdd5..0189103f 100644 Binary files a/schedule.xlsx and b/schedule.xlsx differ