{"id":19624043,"url":"https://github.com/bioconductor/bioconductor_docker","last_synced_at":"2025-05-08T00:08:16.286Z","repository":{"id":39580256,"uuid":"221725430","full_name":"Bioconductor/bioconductor_docker","owner":"Bioconductor","description":"Docker Containers for Bioconductor - NEW! ","archived":false,"fork":false,"pushed_at":"2024-09-13T18:03:55.000Z","size":292,"stargazers_count":73,"open_issues_count":17,"forks_count":31,"subscribers_count":18,"default_branch":"devel","last_synced_at":"2024-09-14T08:51:19.761Z","etag":null,"topics":["bioconductor","bioconductor-containers","docker-image"],"latest_commit_sha":null,"homepage":"https://bioconductor.org/help/docker/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"artistic-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Bioconductor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-14T15:10:33.000Z","updated_at":"2024-09-13T18:03:58.000Z","dependencies_parsed_at":"2022-09-04T07:50:36.048Z","dependency_job_id":"3cda9411-95db-4961-acf7-b6568ebc2d06","html_url":"https://github.com/Bioconductor/bioconductor_docker","commit_stats":{"total_commits":310,"total_committers":11,"mean_commits":"28.181818181818183","dds":0.5870967741935484,"last_synced_commit":"5bdd4aa3ecb1f3a8a3ad92fd5c0e55aa1b51988c"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bioconductor%2Fbioconductor_docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bioconductor%2Fbioconductor_docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bioconductor%2Fbioconductor_docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bioconductor%2Fbioconductor_docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Bioconductor","download_url":"https://codeload.github.com/Bioconductor/bioconductor_docker/tar.gz/refs/heads/devel","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243663652,"owners_count":20327305,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bioconductor","bioconductor-containers","docker-image"],"created_at":"2024-11-11T11:36:39.949Z","updated_at":"2025-03-15T00:02:32.045Z","avatar_url":"https://github.com/Bioconductor.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![license](https://img.shields.io/badge/license-Artistic--2.0-blue)](https://opensource.org/licenses/Artistic-2.0)\n[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)\n[![Weekly devel build status](https://img.shields.io/github/workflow/status/bioconductor/bioconductor_docker/weekly-bioconductor-docker-devel-builder/master)](https://github.com/Bioconductor/bioconductor_docker/actions/workflows/weekly-devel-builder.yml)\n\n# Docker containers for Bioconductor\n\n[Docker](https:/docs.docker.com/engine/docker-overview/) packages software\ninto self-contained environments, called containers, that include necessary\ndependencies to run. Containers can run on any operating system including\nWindows and Mac (using modern Linux kernels) via the\n[Docker engine](https://docs.docker.com/engine/).\n\nContainers can also be deployed in the cloud using\n[Amazon Elastic Container Service](https://aws.amazon.com/ecs/),\n[Google Kubernetes Engine](https://cloud.google.com/kubernetes-engine/)\nor [Microsoft Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/)\n\n\u003ca name=\"top\"\u003e\u003c/a\u003e\n\n- [Quick start](#quickstart)\n- [Why Use Containers](#intro)\n  * [Goals for new containers](#goals)\n- [Current Containers](#current)\n- [Using Containers](#usage)\n  * [Running Containers](#running)\n  * [Mounting Additional Volume](#mounting)\n  * [Using docker-compose](#dockercompose)\n- [Modifying Image Container](#modify)\n- [Singularity](#singularity)\n- [Microsoft Azure Container Instances](#msft)\n  * [Using containers hosted on Microsoft Container Registry](#mcr)\n  * [Use Azure Container Instances to run bioconductor images on-demand on Azure](#aci)\n- [How to contribute](#contribute)\n- [Deprecation Notice](#deprecation)\n  * [Legacy Containers](#legacy)\n  * [Reason for deprecation](#reason)\n  * [Reporting issues](#issues)\n- [Acknowledgements](#acknowledgements)\n\n\u003ca name=\"quickstart\"\u003e\u003c/a\u003e\n## Quick start\n\n1. Install Docker\n\n1. Run container with Bioconductor and RStudio\n\n\t\tdocker run \\\n\t\t\t-e PASSWORD=bioc \\\n\t\t\t-p 8787:8787 \\\n\t\t\tbioconductor/bioconductor_docker:devel\n\n\tThis command will run the docker container\n\t`bioconductor/bioconductor_docker:devel` on your local machine.\n\n\tRStudio will be available on your web browser at\n\t`http://localhost:8787`. The USER is fixed to always being\n\t`rstudio`. The password in the above command is given as `bioc` but\n\tit can be set to anything. `8787` is the port being mapped between\n\tthe docker container and your host machine. NOTE: password cannot\n\tbe `rstudio`.\n\n\tThe user is logged into the `rstudio` user by default.\n\n\u003ca name=\"intro\"\u003e\u003c/a\u003e\n## Why use Containers\n\nWith Bioconductor containers, we hope to enhance\n\n* **Reproducibility**: If you run some code in a container today,\n  you can run it again in the same container (with the same\n  [tag](https://docs.docker.com/userguide/dockerimages/#setting-tags-on-an-image))\n  years later and know that nothing in the container has changed.\n  You should always take note of the tag you used if you think\n  you might want to reproduce some work later.\n\n* **Ease of use**: With one command, you can be running the\n  latest release or devel Bioconductor. No need to worry\n  about whether packages and system dependencies are\n  installed.\n\n* **Convenience**: Easily start a fresh R session with\n  no packages installed for testing. Quickly run an analysis with package\n  dependencies not typical of your workflow. Containers make this easy.\n\nOur aim is to provide up-to-date containers for the current release\nand devel versions of Bioconductor, and some older\nversions. Bioconductor’s Docker images are stored in Docker Hub; the\nsource Dockerfile(s) are on Github.\n\nOur release images and devel images are based on the [Rocker Project](https://www.rocker-project.org/) -\n[rocker/rstudio](https://github.com/rocker-org/rocker/tree/master/rstudio)\nimage and built when a Bioconductor release occurs.\n\n\u003ca name=\"goals\"\u003e\u003c/a\u003e\n### Goals for new container architecture\n\nA few of our key goals to migrate to a new set of Docker containers are,\n\n - to keep the image size being shipped by the Bioconductor team at a\n   manageable size.\n\n - easy to extend, so developers can just use a single image to\n   inherit and build their docker image.\n\n - easy to maintain, by streamlining the docker inheritance chain.\n\n - Adopt a \"best practices\" outline so that new community contributed\n   docker images get reviewed and follow standards.\n\n - Adopt a deprecation policy and life cycle for images similar to\n   Bioconductor packages.\n\n - Replicate the Linux build machines (_malbec2_) on the\n   `bioconductor/bioconductor_docker:devel` image as closely as\n   possible. While this is not fully possible just yet, this image can\n   be used by maintainers who wish to reproduce errors seen on the\n   Bioconductor Linux build machine and as a helpful debugging tool.\n\n- Make Bioconductor package binaries available to all users of the \n  this container. Users can now install Bioconductor packages as binaries\n  by simply doing, `BiocManager::install(\u003ccharacter vector of packages\u003e)`.\n  This speeds up installation of Bioconductor packages by avoiding compilation.\n\n  To see the latest status of the Bioconductor binary repository, check with\n  `BiocPkgTools::repositoryStats()`.\n\n\u003ca name=\"current\"\u003e\u003c/a\u003e\n## Current Containers\n\nFor each supported version of Bioconductor, we provide\n\n- **bioconductor/bioconductor_docker:RELEASE_X_Y**\n\n- **bioconductor/bioconductor_docker:devel**\n\nBioconductor's Docker images are stored in [Docker Hub](https://hub.docker.com/u/bioconductor/);\nthe source Dockerfile(s) are in [Github](https://github.com/Bioconductor/bioconductor_docker).\n\n\u003ca name=\"usage\"\u003e\u003c/a\u003e\n## Using the containers\n\nA well organized guide to popular docker commands can be found\n[here](https://github.com/wsargent/docker-cheat-sheet). For\nconvenience, below are some commands to get you started. The following\nexamples use the `bioconductor/bioconductor_docker:devel` image.\n\n**Note:** that you may need to prepend `sudo` to all `docker`\ncommands. But try them without first.\n\n**Prerequisites**: On Linux, you need Docker\n[installed](https://docs.docker.com/installation/) and on\n[Mac](http://docs.docker.com/installation/mac/) or\n[Windows](http://docs.docker.com/installation/windows/) you need\nDocker Toolbox installed and running.\n\n##### List which docker machines are available locally\n\n\tdocker images\n\n##### List running containers\n\n\tdocker ps\n\n##### List all containers\n\n\tdocker ps -a\n\n##### Resume a stopped container\n\n\tdocker start \u003cCONTAINER ID\u003e\n\n##### Shell into a running container\n\n\tdocker exec -it \u003cCONTAINER ID\u003e /bin/bash\n\n##### Shutdown container\n\n\tdocker stop \u003cCONTAINER ID\u003e\n\n##### Delete container\n\n\tdocker rm \u003cCONTAINER ID\u003e\n\n##### Delete image\n\n\tdocker rmi bioconductor/bioconductor_docker:devel\n\n\u003ca name=\"running\"\u003e\u003c/a\u003e\n### Running the container\n\nThe above commands can be helpful but the real basics of running a\nBioconductor Docker involves pulling the public image and running the\ncontainer.\n\n##### Get a copy of public docker image\n\n\tdocker pull bioconductor/bioconductor_docker:devel\n\n##### To run RStudio Server:\n\n\tdocker run -e PASSWORD=\u003cpassword\u003e \\\n\t\t-p 8787:8787 \\\n\t\tbioconductor/bioconductor_docker:devel\n\nYou can then open a web browser pointing to your docker host on\nport 8787.  If you're on Linux and using default settings, the docker\nhost is `127.0.0.1` (or `localhost`, so the full URL to RStudio would\nbe `http://localhost:8787)`. If you are on Mac or Windows and running\n`Docker Toolbox`, you can determine the docker host with the\n`docker-machine ip default` command.\n\nIn the above command, `-e PASSWORD=` is setting the RStudio password\nand is required by the RStudio Docker image. It can be whatever you\nlike except it cannot be `rstudio`.  Log in to RStudio with the\nusername `rstudio` and whatever password was specified.\n\nIf you want to run RStudio as a user on your host machine, in order to\nread/write files in a host directory, please [read this](https://github.com/rocker-org/rocker/wiki/Sharing-files-with-host-machine).\n\nNOTE: If you forget to add the tag `devel` or `RELEASE_X_Y` while\nusing the `bioconductor/bioconductor_docker` image, it will\nautomatically use the `latest` tag which points to the latest RELEASE\nversion of Bioconductor.\n\n##### To run R from the command line:\n\n\tdocker run -it --user rstudio bioconductor/bioconductor_docker:devel R\n\n##### To open a Bash shell on the container:\n\n\tdocker run -it --user rstudio bioconductor/bioconductor_docker:devel bash\n\n**Note**: The `docker run` command is very powerful and versatile.\nFor full documentation, type `docker run --help` or visit\nthe [help page](https://docs.docker.com/reference/run/).\n\n\u003cp class=\"back_to_top\"\u003e[ \u003ca href=\"#top\"\u003eBack to top\u003c/a\u003e ]\u003c/p\u003e\n\n\u003ca name=\"mounting\"\u003e\u003c/a\u003e\n### Mounting Additional Volume\n\nOne such option for `docker run` is `-v` to mount an additional volume\nto the docker image. This might be useful for say mounting a local R\ninstall directory for use on the docker. The path on the docker image\nthat should be mapped to a local R library directory is\n`/usr/local/lib/R/host-site-library`.\n\nThe follow example would mount my locally installed packages to this\ndocker directory. In turn, that path is automatically loaded in the R\n`.libPaths` on the docker image and all of my locally installed\npackage would be available for use.\n\n* Running it interactively,\n\n\t\tdocker run \\\n\t\t\t-v /home/my-devel-library:/usr/local/lib/R/host-site-library \\\n\t\t\t-it \\\n\t\t\t--user rstudio \\\n\t\t\tbioconductor/bioconductor_docker:devel\n\n  without the `--user rstudio` option, the container is started and\n  logged in as the `root` user.\n\n  The `-it` flag gives you an interactive tty (shell/terminal) to the\n  docker container.\n\n* Running it with RStudio interface\n\n\t\tdocker run \\\n\t\t\t-v /home/my-devel-library:/usr/local/lib/R/host-site-library \\\n\t\t\t-e PASSWORD=password \\\n\t\t\t-p 8787:8787 \\\n\t\t\tbioconductor/bioconductor_docker:devel\n\n\u003ca name=\"dockercompose\"\u003e\u003c/a\u003e\n\n### Using docker-compose\n\nTo run the docker-compose file `docker-compose.yaml` from the same\ndirectory,\n\n```\ndocker-compose up\n```\n\nUsing `docker-compose`, the user can launch the image with a single\ncommand. The RStudio image is launched at `http://localhost:8787`.\n\nThe `docker-composer.yaml` includes settings so that the user doesn't\nhave to worry about setting the port, password (default is `bioc`), or\nthe volume to save libraries.\n\nThe library path, where all the packages are installed are\nautomatically configured to use the volume\n`$HOME/R/bioconductor_docker/\u003cbioconductor_version\u003e`, in the case of\nthe Bioconductor version 3.14, it would be\n`$HOME/R/bioconductor_docker/3.14`. This location is mounted on to the\npath, `/usr/local/lib/R/host-site-library`, which is the first value\nin your search path for packages if you check `.libPaths()`.\n\nWhen the user starts the docker image using `docker-compose`, it will\nrecognize previously mounted libraries with the apprpriate\nbioconductor version, and save users time reinstalling the previously\ninstalled packages.\n\nTo add another volume for data, it's possible to modify the\n`docker-compose.yml` to include another volume, so all the data is\nstored in the same location as well.\n\n```\nvolumes:\n\t- ${HOME}/R/bioconductor_docker/3.14:/usr/local/lib/R/host-site-library\n\t- ${HOME}/R/data:/home/rstudio\n```\n\n\nTo run in the background, use the `-d` or `--detach` flag,\n\n```\ndocker-compose up -d\n```\n\nIf the image is run in a detached state, the `container-name` can be\nused to exec into the terminal if the user wishes `root` access in a\nterminal, without using RStudio.\n\nWithin the `root` user, additional system dependencies can be\ninstalled to make the image fit the needs of the user.\n\n```\ndocker exec -it bioc-3.14 bash\n```\n\nFor more information on how to use `docker-compose`, use the\n[official docker-compose reference](https://docs.docker.com/compose/reference/up/).\n\n\u003cp class=\"back_to_top\"\u003e[ \u003ca href=\"#top\"\u003eBack to top\u003c/a\u003e ]\u003c/p\u003e\n\n\u003ca name=\"modify\"\u003e\u003c/a\u003e\n## Modifying the images\n\nThere are two ways to modify these images:\n\n1. Making changes in a running container and then committing them\n   using the `docker commit` command.\n\n\t\tdocker commit \u003cCONTAINER ID\u003e \u003cname for new image\u003e\n\n2. Using a Dockerfile to declare the changes you want to make.\n\nThe second way is the recommended way. Both ways are\n[documented here](https://docs.docker.com/userguide/dockerimages/#creating-our-own-images).\n\nExample 1:\n\n  My goal is to add a python package 'tensorflow' and to install a\n  Bioconductor package called 'scAlign' on top of the base docker\n  image i.e bioconductor/bioconductor_docker:devel.\n\n  As a first step, my Dockerfile should inherit from the\n  `bioconductor/bioconductor_docker:devel` image, and build from\n  there. Since all docker images are Linux environments, and this\n  container is specifically 'Debian', I need some knowledge on how to\n  install libraries on Linux machines.\n\n  In your new `Dockerfile`, you can have the following commands\n\n\t# Docker inheritance\n\tFROM bioconductor/bioconductor_docker:devel\n\n\t# Update apt-get\n\tRUN apt-get update \\\n\t\t## Install the python package tensorflow\n\t\t\u0026\u0026 pip install tensorflow\t\t\\\n\t\t## Remove packages in '/var/cache/' and 'var/lib'\n\t\t## to remove side-effects of apt-get update\n\t\t\u0026\u0026 apt-get clean \\\n\t\t\u0026\u0026 rm -rf /var/lib/apt/lists/*\n\n\t# Install required Bioconductor package\n\tRUN R -e 'BiocManager::install(\"scAlign\")'\n\n  This `Dockerfile` can be built with the command, (note: you can name\n  it however you want)\n\n\tdocker build -t bioconductor_docker_tensorflow:devel .\n\n  This will let you use the docker image with 'tensorflow' installed and\n  also `scAlign` package.\n\n\tdocker run -p 8787:8787 -e PASSWORD=bioc bioconductor_docker_tensorflow:devel\n\nExample 2:\n\n  My goal is to add all the required infrastructure to be able to\n  compile vignettes and knit documents into pdf files. My `Dockerfile`\n  will look like the following for this requirement,\n\n\t# This docker image has LaTeX to build the vignettes\n\tFROM bioconductor/bioconductor_docker:devel\n\n\t# Update apt-get\n\tRUN apt-get update \\\n\t\t\u0026\u0026 apt-get install -y --no-install-recommends apt-utils \\\n\t\t\u0026\u0026 apt-get install -y --no-install-recommends \\\n\t\ttexlive \\\n\t\ttexlive-latex-extra \\\n\t\ttexlive-fonts-extra \\\n\t\ttexlive-bibtex-extra \\\n\t\ttexlive-science \\\n\t\ttexi2html \\\n\t\ttexinfo \\\n\t\t\u0026\u0026 apt-get clean \\\n\t\t\u0026\u0026 rm -rf /var/lib/apt/lists/*\n\n\t## Install BiocStyle\n\tRUN R -e 'BiocManager::install(\"BiocStyle\")'\n\n  This `Dockerfile` can be built with the command,\n\n\tdocker build -t bioconductor_docker_latex:devel .\n\n  This will let you use the docker image as needed to build and\n  compile vignettes for packages.\n\n\tdocker run -p 8787:8787 -e PASSWORD=bioc bioconductor_docker_latex:devel\n\n\u003cp class=\"back_to_top\"\u003e[ \u003ca href=\"#top\"\u003eBack to top\u003c/a\u003e ]\u003c/p\u003e\n\n\u003ca name=\"singularity\"\u003e\u003c/a\u003e\n## Singularity\n\nThe latest `bioconductor/bioconductor_docker` images are available on\nSingularity Hub as well. Singularity is a container runtime just like\nDocker, and Singularity Hub is the host registry for Singularity\ncontainers.\n\nYou can find the Singularity containers collection on this link\nhttps://singularity-hub.org/collections/3955.\n\nThese images are particularly useful on compute clusters where you\ndon't need admin access. You need to have the module `singularity`\ninstalled. See https://singularity.lbl.gov/docs-installation (contact your\nIT department when in doubt).\n\nIf you have Singularity installed on your machine or cluster are:\n\nInspect available modules\n\n\tmodule available\n\nIf Singularity is available,\n\n\tmodule load singularity\n\nPlease check this link for specific usage instructions relevant to Singularity\ncontainers and their usage https://www.rocker-project.org/use/singularity/.\n\n\u003ca name=\"msft\"\u003e\u003c/a\u003e\n## Microsoft Azure Container Instances\n\nIf you are a Microsoft Azure user, you have an option to run your\ncontainers using images hosted on [Microsoft Container Registry](https://github.com/microsoft/ContainerRegistry).\n\n\u003e Microsoft Container Registry (MCR) is the primary Registry for all Microsoft Published docker images that offers a reliable and trustworthy delivery of container images with a syndicated catalog\n\n\u003ca name=\"mcr\"\u003e\u003c/a\u003e\n### Using containers hosted on Microsoft Container Registry\n\nYou can learn more about the `bioconductor_docker` image hosted on\nMicosoft Container Registry\n[here](https://hub.docker.com/_/microsoft-bioconductor/).\n\nPull the `bioconductor_docker` image from Microsoft Container\nRegistry, specifying your `tag` of choice.  Check\n[here](https://hub.docker.com/_/microsoft-bioconductor-bioconductor-docker)\nfor the list of tags under \"Full Tag Listing\":\n\n\tdocker pull mcr.microsoft.com/bioconductor/bioconductor_docker:\u003ctag\u003e\n\nTo pull the latest image:\n\n\tdocker pull mcr.microsoft.com/bioconductor/bioconductor_docker:latest\n\n**Example: Run RStudio interactively from your docker container**\n\nTo run RStudio in a web browser session, run the following and access\nit from `127.0.0.1:8787`. The default user name is \"rstudio\" and you\ncan specify your password as the example below (here, it is set to\n'bioc'):\n\n\tdocker run --name bioconductor_docker_rstudio \\\n\t\t-v ~/host-site-library:/usr/local/lib/R/host-site-library \\\n\t\t-e PASSWORD='bioc'                               \\\n\t\t-p 8787:8787                                     \\\n\t\tmcr.microsoft.com/bioconductor/bioconductor_docker:latest\n\nTo run RStudio on your terminal:\n\n\tdocker run --name bioconductor_docker_rstudio \\\n\t\t-it                                            \\\n\t\t-v ~/host-site-library:/usr/local/lib/R/host-site-library \\\n\t\t-e PASSWORD='bioc'                               \\\n\t\t-p 8787:8787                                     \\\n\t\tmcr.microsoft.com/bioconductor/bioconductor_docker:latest R\n\n\u003cp class=\"back_to_top\"\u003e[ \u003ca href=\"#top\"\u003eBack to top\u003c/a\u003e ]\u003c/p\u003e\n\n\u003ca name=\"aci\"\u003e\u003c/a\u003e\n### Use Azure Container Instances to run bioconductor images on-demand on Azure\n\n[Azure Container Instances or ACI](https://azure.microsoft.com/en-us/services/container-instances/#features)\nprovide a way to run Docker containers on-demand in a managed,\nserverless Azure environment. To learn more, check out the\ndocumentation\n[here](https://docs.microsoft.com/en-us/azure/container-instances/container-instances-overview).\n\n### Run bioconductor images using ACI\n\n**Prerequisites**:\n1. [An Azure account and a\n   subscription](https://docs.microsoft.com/en-us/azure/guides/developer/azure-developer-guide#understanding-accounts-subscriptions-and-billing)\n   you can create resources in\n\n2. [Azure\n   CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest)\n\n3. Create a [resource\n   group](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-portal)\n   within your subscription\n\nYou can run [Azure CLI or \"az cli\"\ncommands](https://docs.microsoft.com/en-us/cli/azure/?view=azure-cli-latest)\nto create, stop, restart or delete container instances running any\nbioconductor image - either official images by bioconductor or images\navailable on [Microsoft Container\nRegistry](https://hub.docker.com/_/microsoft-bioconductor).  To get\nstarted, ensure you have an Azure account and a subscription or\n[create a free account](https://azure.microsoft.com/en-us/free/).\n\nFollow [this\ntutorial](https://docs.microsoft.com/en-us/azure/container-instances/container-instances-quickstart)\nto get familiar with Azure Container Instances.\n\nTo run the bioconductor image hosted on Microsoft Container Registry\nor MCR, create a new resource group in your Azure subscription. Then\nrun the following command using Azure CLI. You can customize any or\nall of the inputs. This command is adapted to run on an Ubuntu\nmachine:\n\n\taz container create \\\n\t\t--resource-group resourceGroupName \\\n\t\t--name mcr-bioconductor \\\n\t\t--image mcr.microsoft.com/bioconductor/bioconductor_docker \\\n\t\t--cpu 2 \\\n\t\t--memory 4 \\\n\t\t--dns-name-label mcr-bioconductor \\\n\t\t--ports 8787 \\\n\t\t--environment-variables 'PASSWORD'='bioc'\n\nWhen completed, run this command to get the fully qualified domain name(FQDN):\n\n\taz container show \\\n\t\t--resource-group resourceGroupName \\\n\t\t--name mcr-bioconductor \\\n\t\t--query \"{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}\" \\\n\t\t--out table\n\nHere we expose port `8787` on this publicly accessible FQDN. You may\nhave to choose a different \"dns-name-label\" to avoid conflicts. By\ndefault, the username for RStudio is \"rstudio\" (similar to the\nofficial bioconductor docker image). Here we set the password for\nRStudio to 'bioc' in the environment variable configuration. The\n`--cpu` and `--memory` (in GB) configurations can also be customized\nto your needs. By default, ACI have 1 cpu core and 1.5GB of memory\nassigned.\n\nTo learn more about what you can configure and customize when creating\nan ACI, run:\n\n\taz container create --help\n\n#### Mount Azure File Share to persist analysis data between sessions\n\nTo ensure that the data persists between different analysis sessions\nwhen using Azure Container Instances, you can use the feature to\n[mount Azure file share to your container instance](https://docs.microsoft.com/en-us/azure/container-instances/container-instances-volume-azure-files). In this example, we will create\nan ACI that mounts the \"/home/rstudio\" directory in RStudio to an\n[Azure File Share](https://docs.microsoft.com/en-us/azure/storage/files/storage-files-introduction).\n\n**Prerequisites**:\n\n1. [An Azure account and a subscription](https://docs.microsoft.com/en-us/azure/guides/developer/azure-developer-guide#understanding-accounts-subscriptions-and-billing) you can create resources in\n\n2. [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest)\n\n3. Create a [resource group](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-portal)\n   within your subscription\n\nNow, run the following Azure CLI commands to:\n\n1. Create an [Azure\n   Storage](https://docs.microsoft.com/en-us/azure/storage/common/storage-account-create?toc=%2Fazure%2Fstorage%2Fblobs%2Ftoc.json\u0026tabs=azure-cli)\n   account\n\n2. Create an [Azure file\n   share](https://docs.microsoft.com/en-us/azure/storage/files/storage-how-to-use-files-cli)\n\n3. Get the [storage account\n   key](https://docs.microsoft.com/en-us/cli/azure/storage/account/keys?view=azure-cli-latest)\n\n```\n# Change these four parameters as needed\nACI_PERS_RESOURCE_GROUP=resourceGroupName\nACI_PERS_STORAGE_ACCOUNT_NAME=storageAccountName\nACI_PERS_LOCATION=eastus\nACI_PERS_SHARE_NAME=fileShareName\n\n# Step1: Create the storage account with the parameters\naz storage account create \\\n\t--resource-group $ACI_PERS_RESOURCE_GROUP \\\n\t--name $ACI_PERS_STORAGE_ACCOUNT_NAME \\\n\t--location $ACI_PERS_LOCATION \\\n\t--sku Standard_LRS\n\n# Step2: Create the file share\naz storage share create \\\n\t--name $ACI_PERS_SHARE_NAME \\\n\t--account-name $ACI_PERS_STORAGE_ACCOUNT_NAME\n\n# Step3: Get the storage account key\nSTORAGE_KEY=$(az storage account keys list \\\n\t--resource-group $ACI_PERS_RESOURCE_GROUP \\\n\t--account-name $ACI_PERS_STORAGE_ACCOUNT_NAME \\\n\t--query \"[0].value\" --output tsv)\necho $STORAGE_KEY\n```\n\nHere is an example command to mount an Azure file share to an ACI running bioconductor. This command is adapted to run on an Ubuntu machine:\n\n\taz container create \\\n\t\t--resource-group resourceGroupName \\\n\t\t--name mcr-bioconductor-fs \\\n\t\t--image mcr.microsoft.com/bioconductor/bioconductor_docker \\\n\t\t--dns-name-label mcr-bioconductor-fs \\\n\t\t--cpu 2 \\\n\t\t--memory 4 \\\n\t\t--ports 8787 \\\n\t\t--environment-variables 'PASSWORD'='bioc' \\\n\t\t--azure-file-volume-account-name storageAccountName \\\n\t\t--azure-file-volume-account-key $STORAGE_KEY \\\n\t\t--azure-file-volume-share-name fileShareName \\\n\t\t--azure-file-volume-mount-path /home/rstudio\n\nWhen completed, run this command to get the fully qualified domain name or FQDN:\n\n\taz container show \\\n\t\t--resource-group resourceGroupName \\\n\t\t--name mcr-bioconductor-fs \\\n\t\t--query \"{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}\" \\\n\t\t--out table\n\nHere we expose port 8787 on this publicly accessible FQDN. You may\nhave to choose a different \"dns-name-label\" to avoid conflicts. By\ndefault, the username for RStudio is \"rstudio\" (similar to the\nofficial bioconductor docker image). Here we set the password for\nRStudio to 'bioc' in the environment variable configuration. The\n\"--cpu\" and \"--memory\" (in GB) configurations can also be customized\nto your needs. By default, ACI have 1 cpu core and 1.5GB of memory\nassigned. Here, we also mount RStudio \"/home/rstudio\" directory to a\npersistent Azure file share named \"fileShareName\" in the storage\naccount specified. When you stop or restart an ACI, this data will not\nbe lost.\n\n#### Stop, Start, Restart or Delete containers running on ACI\n\nYou can run Azure CLI commands to [stop, start,\nrestart](https://docs.microsoft.com/en-us/azure/container-instances/container-instances-stop-start)\nor\n[delete](https://docs.microsoft.com/en-us/azure/container-instances/container-instances-quickstart#clean-up-resources)\ncontainer instances on Azure. You can find all the commands and\noptions\n[here](https://docs.microsoft.com/en-us/cli/azure/container?view=azure-cli-latest#commands).\n\nReplace `containerName` and `resourceGroupName` in the following CLI commands.\n\n##### Stop the container instance\n\n\taz container stop -n containerName -g resourceGroupName\n\n\n##### Start the container instance\n\n\taz container start -n containerName -g resourceGroupName\n\n##### Restart the container instance\n\n\taz container restart -n containerName -g resourceGroupName\n\n##### Delete the container instance\n\n\taz container delete -n containerName -g resourceGroupName\n\nTo not be prompted for confirmation for deleting the ACI:\n\n\taz container delete -n containerName -g resourceGroupName -y\n\nTo troubleshoot any issues when using Azure Container Instances, try\nout the recommendations\n[here](https://docs.microsoft.com/en-us/azure/container-instances/container-instances-troubleshooting). For\nfeedback or further issues, contact us via\n[email](mailto:genomics@microsoft.com).\n\n\u003cp class=\"back_to_top\"\u003e[ \u003ca href=\"#top\"\u003eBack to top\u003c/a\u003e ]\u003c/p\u003e\n\n\u003ca name=\"contribute\"\u003e\u003c/a\u003e\n## How to Contribute\n\nThere is a comprehensive list of best practices and standards on how\ncommunity members can contribute images\n[here](https://github.com/Bioconductor/bioconductor_docker/blob/master/best_practices.md).\n\nlink: https://github.com/Bioconductor/bioconductor_docker/blob/master/best_practices.md\n\n\u003ca name=\"deprecation\"\u003e\u003c/a\u003e\n## Deprecation Notice\n\nFor previous users of docker containers for Bioconductor, please note\nthat we are deprecating the following images. These images were\nmaintained by Bioconductor Core, and also the community.\n\n\u003ca name=\"legacy\"\u003e\u003c/a\u003e\n### Legacy Containers\n\nThese images are NO LONGER MAINTAINED and updated. They will however\nbe available to use should a user choose. They are not\nsupported anymore by the Bioconductor Core team.\n\nBioconductor Core Team: bioc-issue-bot@bioconductor.org\n\n* [bioconductor/devel_base2](https://hub.docker.com/r/bioconductor/devel_base2/)\n* [bioconductor/devel_core2](https://hub.docker.com/r/bioconductor/devel_core2/)\n* [bioconductor/release_base2](https://hub.docker.com/r/bioconductor/release_base2/)\n* [bioconductor/release_core2](https://hub.docker.com/r/bioconductor/release_core2/)\n\nSteffen Neumann: sneumann@ipb-halle.de, Maintained as part of the \"PhenoMeNal, funded by Horizon2020 grant 654241\"\n\n* [bioconductor/devel_protmetcore2](https://hub.docker.com/r/bioconductor/devel_protmetcore2/)\n* [bioconductor/devel_metabolomics2](https://hub.docker.com/r/bioconductor/devel_metabolomics2/)\n* [bioconductor/release_protmetcore2](https://hub.docker.com/r/bioconductor/release_protmetcore2/)\n* [bioconductor/release_metabolomics2](https://hub.docker.com/r/bioconductor/release_metabolomics2/)\n\nLaurent Gatto: lg390@cam.ac.uk\n\n* [bioconductor/devel_mscore2](https://hub.docker.com/r/bioconductor/devel_mscore2/)\n* [bioconductor/devel_protcore2](https://hub.docker.com/r/bioconductor/devel_protcore2/)\n* [bioconductor/devel_proteomics2](https://hub.docker.com/r/bioconductor/devel_proteomics2/)\n* [bioconductor/release_mscore2](https://hub.docker.com/r/bioconductor/release_mscore2/)\n* [bioconductor/release_protcore2](https://hub.docker.com/r/bioconductor/release_protcore2/)\n* [bioconductor/release_proteomics2](https://hub.docker.com/r/bioconductor/release_proteomics2/)\n\nRGLab: wjiang2@fredhutch.org\n\n* [bioconductor/devel_cytometry2](https://hub.docker.com/r/bioconductor/devel_cytometry2/)\n* [bioconductor/release_cytometry2](https://hub.docker.com/r/bioconductor/release_cytometry2/)\n\nFirst iteration containers\n\n* bioconductor/devel_base\n* bioconductor/devel_core\n* bioconductor/devel_flow\n* bioconductor/devel_microarray\n* bioconductor/devel_proteomics\n* bioconductor/devel_sequencing\n* bioconductor/devel_metabolomics\n* bioconductor/release_base\n* bioconductor/release_core\n* bioconductor/release_flow\n* bioconductor/release_microarray\n* bioconductor/release_proteomics\n* bioconductor/release_sequencing\n* bioconductor/release_metabolomics\n\n\u003ca name=\"reason\"\u003e\u003c/a\u003e\n### Reason for deprecation\n\nThe new Bioconductor Docker image `bioconductor/bioconductor_docker`\nmakes it possible to easily install any package the user chooses since\nall the system dependencies are built in to this new image. The\nprevious images did not have all the system dependencies built in to\nthe image. The new installation of packages can be done with,\n\n\tBiocManager::install(c(\"package_name\", \"package_name\"))\n\nOther reasons for deprecation:\n\n - the chain of inheritance of Docker images was too complex and hard\n   to maintain.\n\n - Hard to extend because there were multiple flavors of images.\n\n - Naming convention was making things harder to use.\n\n - Images which were not maintained were not deprecated.\n\n\u003ca name=\"issues\"\u003e\u003c/a\u003e\n### Reporting Issues\n\nPlease report issues with the new set of images on [GitHub Issues](https://github.com/Bioconductor/bioconductor_docker/issues) or\nthe [Bioc-devel](mailto:bioc-devel@r-project.org) mailing list.\n\nThese issues can be questions about anything related to this piece of\nsoftware such as, usage, extending Docker images, enhancements, and\nbug reports.\n\n\u003ca name=\"acknowledgements\"\u003e\u003c/a\u003e\n## Acknowledgements\n\nThanks to the [rocker](https://github.com/rocker-org/rocker) project\nfor providing the R/RStudio Server containers upon which ours are\nbased.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbioconductor%2Fbioconductor_docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbioconductor%2Fbioconductor_docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbioconductor%2Fbioconductor_docker/lists"}