Skip to content

Commit

Permalink
Updated
Browse files Browse the repository at this point in the history
  • Loading branch information
royfrancis committed Jan 5, 2025
1 parent c6afb58 commit bd87587
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 30 deletions.
34 changes: 20 additions & 14 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -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="[email protected]"
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
33 changes: 17 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -47,46 +48,46 @@ 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
docker run --rm --platform linux/amd64 -u $(id -u):$(id -g) -v ${PWD}:/qmd ghcr.io/nbisweden/workshop-ngsintro:latest
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

Expand All @@ -98,4 +99,4 @@ The contents of these scripts should use identical steps and tools as the studen

---

**2024** • NBIS • SciLifeLab
**2025** • NBIS • SciLifeLab
Binary file modified schedule.xlsx
Binary file not shown.

0 comments on commit bd87587

Please sign in to comment.