This package is a template for building a Bioconductor workshop. The package includes Github actions to:
- Set up bioconductor/bioconductor_docker:devel on Github resources
- Install package dependencies for your package (based on the
DESCRIPTIONfile) - Run
rcmdcheck::rcmdcheck - Build a pkgdown website and push it to github pages
- Build a docker image with the installed package and dependencies and deploy to the Github Container Repository at the name
ghcr.io/gihub_user/repo_name, all lowercase.
Package authors are primarily responsible for:
- Creating a landing site of their choosing for their workshops (a website). This website should be listed in the
DESCRIPTIONfile as theURL. - Creating a docker image that will contain workshop materials and the installed packages necessary to run those materials. The name of the resulting docker image, including "tag" if desired, should be listed in a non-standard tag,
DockerImage:in theDESCRIPTIONfile.
Both of those tasks can be accomplished using the Github actions included in this template package. The vignette accompanying this package describes how to accomplish both of these tasks.
For detailed instructions, see the How to build a workshop article/vignette.
- A working docker image that contains the installed package and dependencies.
- An up-to-date
pkgdownwebsite at https://YOURUSERNAME.github.io/YOURREPOSITORYNAME/ - Docker image will be tagged with
latest,sha-XXXXXXwhereXXXXXXis the hash of the currentmastercommit, andmaster.
Your workshop Docker image will NOT be publicly accessible by default.
GitHub Container Registry (GHCR) sets all newly pushed packages to private visibility automatically. This means that anyone trying to pull your workshop image — attendees, workshop organizers, automated systems — will get an authentication error unless you explicitly change the visibility to public.
This is a manual step that cannot be automated through the GitHub Actions workflow in this template, because changing package visibility requires owner-level permissions that exceed what the
GITHUB_TOKENsecret can provide.
After GitHub Actions successfully pushes your Docker image for the first time:
- Go to your GitHub profile or organization page
- Click the "Packages" tab
- Find your workshop package (it will be named after your repository)
- Click the package name to open it
- Click "Package settings" (bottom right of the package page)
- Scroll down to the "Danger Zone" section
- Click "Change visibility" → select Public → confirm
Alternatively, navigate directly to:
https://github.com/users/YOUR_USERNAME/packages/container/YOUR_REPO_NAME/settings
(or for organizations: https://github.com/orgs/YOUR_ORG/packages/container/YOUR_REPO_NAME/settings)
Bioconductor workshops are meant to be open and reproducible. Attendees need to be able to
docker pull your image without a GitHub account or any authentication. A private image
silently breaks this for everyone. Make the image public before advertising your workshop.
- GitHub Docs: Configuring a package's access control and visibility
- GitHub Docs: Working with the Container Registry
- GitHub Docs: Connecting a repository to a package
docker run -e PASSWORD=<choose_a_password_for_rstudio> -p 8787:8787 YOURDOCKERIMAGENAMEOnce running, navigate to http://localhost:8787/ and then login with rstudio:yourchosenpassword.
To try with this repository docker image:
docker run -e PASSWORD=abc -p 8787:8787 ghcr.io/bioconductor/buildabiocworkshopNOTE: Running docker that uses the password in plain text like above exposes the password to others in a multi-user system (like a shared workstation or compute node). In practice, consider using an environment variable instead of plain text to pass along passwords and other secrets in docker command lines.
- https://bioconductor.github.io/BuildABiocWorkshop
- A Docker image that you can run locally, in the cloud, or (usually) even as a singularity container on HPC systems.