diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index a129617..e094a59 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,14 +1,22 @@ - + # Description - + Fixes # (issue) +## Checklist (if adding a new docker image) + +- [ ] image in new directory +- [ ] file in that directory named 'Dockerfile' exactly +- [ ] image has been built or tested / passes tests +- [ ] image added to `pull_request.yml` file (following `- {dir: directory_path, name: 'name its called on dockerhub'}` convention) +- [ ] image added to `merge.yml` file (following `- {dir: directory_path, name: 'name its called on dockerhub'}` convention) + ## Type of change - + - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) @@ -17,7 +25,7 @@ Fixes # (issue) # How Has This Been Tested? - + - [ ] Test A - [ ] Test B diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml index d3c5e61..3c79c49 100644 --- a/.github/workflows/merge.yml +++ b/.github/workflows/merge.yml @@ -28,6 +28,7 @@ jobs: - {dir: ottr_itn_workshop, name: 'jhudsl/ottr_itn_workshop'} - {dir: ottr_metrics, name: 'jhudsl/ottr_metrics'} - {dir: ottr_ml, name: 'jhudsl/ottr_ml'} + - {dir: ottr_viz, name: 'jhudsl/ottr_viz'} # NEW IMAGES HERE: # ####### - {dir: directory_path, name: 'name its called on dockerhub'} steps: diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 11197bf..1967965 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -25,6 +25,7 @@ jobs: - {dir: ottr_itn_workshop, name: 'jhudsl/ottr_itn_workshop'} - {dir: ottr_metrics, name: 'jhudsl/ottr_metrics'} - {dir: ottr_ml, name: 'jhudsl/ottr_ml'} + - {dir: ottr_viz, name: 'jhudsl/ottr_viz'} # NEW IMAGES HERE: # ####### - {dir: directory_path, name: 'name its called on dockerhub'} steps: diff --git a/ottr_viz/Dockerfile b/ottr_viz/Dockerfile new file mode 100644 index 0000000..42f6669 --- /dev/null +++ b/ottr_viz/Dockerfile @@ -0,0 +1,51 @@ +FROM jhudsl/ottr_python:main +LABEL maintainer="kisaac@fredhutch.org" + +# Remove broken Vivaldi repo +RUN rm -f /etc/apt/sources.list.d/vivaldi.list \ + && rm -f /etc/apt/sources.list.d/vivaldi*.sources + +# System dependencies for R packages +RUN apt-get update && apt-get install -y \ + cmake \ + xz-utils \ + libgmp-dev \ + libudunits2-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libxml2-dev \ + libfontconfig1-dev \ + libfreetype6-dev \ + libharfbuzz-dev \ + libfribidi-dev \ + libpng-dev \ + libjpeg-dev \ + libtiff-dev \ + libcairo2-dev \ + libgit2-dev \ + && rm -rf /var/lib/apt/lists/* + +# Install BiocManager +RUN Rscript -e "install.packages('BiocManager', repos='https://cloud.r-project.org')" + +# Install nloptr early (compiled dependency) +RUN Rscript -e "BiocManager::install('nloptr')" + +# Core R infrastructure (pinned versions) +RUN Rscript -e "install.packages( \ + c('Rcpp', 'xfun', 'htmltools', 'rmarkdown', 'knitr'), \ + repos='https://cloud.r-project.org')" + +# Plotting ecosystem (pinned versions) +RUN Rscript -e "install.packages( \ + c('ggpubr','patchwork','broom','ggrepel','ggtext','ggrain','ggridges', \ + 'networkD3','scales','survival','survMisc','survminer','ggVennDiagram', \ + 'UpSetR','naniar','palmerpenguins'), \ + repos='https://cloud.r-project.org')" + +# remotes + GitHub packages +RUN Rscript -e "install.packages('remotes', repos='https://cloud.r-project.org')" +RUN Rscript -e "remotes::install_github('davidsjoberg/ggsankey')" + +# Python packages +RUN pip3 install adjustText==1.3.0 highlight-text