Skip to content

Ubuntu Docker with R and other packages needed for running CI for various EEG projects.

License

Notifications You must be signed in to change notification settings

EvolEcolGroup/EEG_Docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EEG Docker

Welcome to the docker repository of the Evolutionary Ecology Group (EEG) - Zoology Department, Cambridge University.

This project creates a Ubuntu docker image and pushes it to docker.com. The image is based on Ubuntu LTS and R. In addition, several apt and R packages are pre-installed so to run continuous integration on EEG projects using CircleCI. The docker is publicly available at: https://hub.docker.com/r/manicaeeg/eeg-docker.

Getting Started

The images are based on rstudio/r-docker based on Ubuntu 20.04 LTS with r version 4.2. In addition, several apt and R packages are pre-installed so to run continuous integration on EEG projects using CircleCI. The dockers are generated and updated via a publicly available GitHub repository: https://github.com/EvolEcolGroup/EEG_Docker

Prerequisites

In order to run this container, you will need docker installed. Based on your OS, you can install it and read a quick guide on the docker.com website:

Available Images

You can download latest image with

docker pull manicaeeg/eeg-docker:latest

Image Description Size Metrics Build status
latest Main docker

Additional statistics on the images can be found on the Docker

Available Tags

You can download one of the following tagged images with

docker pull manicaeeg/eeg-docker:tag_name

Tag Name Description Ubuntu R version Size
latest Main image 20.04 4.2
ubuntu20.04r4.2 As latest 20.04 4.2

In the latest image, apt and R packages are automatically updated at the beginning of each month. In addition to the packages found in the base rstudio/r-docker, the additional installed apt and R packages are listed in the Dockerfile.

Run docker locally

Once you downloaded an image (e.g. docker pull manicaeeg/eeg-docker:latest), you can use it locally on your shell. For additional help, refer to the quick guide to the docker command markdown page.

CI tests

At every commit a test "update_docker" is run, while another two tests are set on manual:

  • manual_build_deploy_docker
  • manual_test_image

Urls for those tests (on CircleCi) are not posted here since a new manual job will be created at each commit. Please, do not bookmark the manual jobs, otherwise you will re-run the older version of the repository.

New dockers

If a new docker needs to be created, remember to change its name and tag in the Dockerfile and config.yml so to upload it to docker with a new name/tag.

Update the Dockerfile

Example: change Version of r from 3.6. to 4.0 and from Ubuntu 18.04 (bionic) to 20.04 (focal):

FROM rstudio/r-base:3.6-bionic 
FROM rstudio/r-base:4.0-focal 

For more information see the r-docker repo readme

If you implement other changes, you might want also to update the metatag on the version few lines below:

LABEL org.label-schema.schema-version="1.1" \

Update config.yml

Example: change Version of r from 3.6. to 4.0 and from Ubuntu 18.04 (bionic) to 20.04 (focal). Find the line where the IMAGE_TAG is defined:

# Common environmental variables
  env_vars: &env_vars
    IMAGE_TAG: ubuntu18.04r3.6     #  Docker version tag :$IMAGE_TAG
    REPO_NAME: eeg-docker

and replace it with the new tag in the form of ubuntu+ubuntu_version+r+r_version. E.g.

    IMAGE_TAG: ubuntu20.04r4.0     #  Docker version tag :$IMAGE_TAG

Remember to comment the lines associating the latest tag in the older version, while keeping it uncommented only in your latest release.

# Add here additional tags for the "latest" release
docker tag $DOCKER_USERNAME/$REPO_NAME:$IMAGE_TAG $DOCKER_USERNAME/$REPO_NAME:latest
docker push $DOCKER_USERNAME/$REPO_NAME:latest 

Otherwise, if they are kept uncommented in the older one, and that repo gets rebuilt, it would overwrite (and push to docker.com) the actual latest image with the older one.

Update the readme

Lastly, remember to update this readme.md file to include the new tag in the tag-table. Information on the number of layers comes from Micro Badger that checks and updates periodically (i.e. not in real-time) the images. Therefore, do not worry if a no found layer badge is displayed. You can manually check the number of layers in the Tags Page of the Docker/EEG-Docker website, by clicking on the tagged image you are interested in.

First build from new repository branch or new docker

The first automatic update_docker job on the continuous integration will fail because there is not yet an image to update. Indeed, the first build of each new branch needs to be manually triggered with the manual_build_deploy_docker job from CircleCi website. If there are no errors, the image is built and push and all the following commits should successfully trigger the update_docker job.

Find Us

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

For the versions available, see the tags on this repository.

Authors

  • Andrea Manica - PI, Contributor, Mantainer - GitHub
  • Gian Luigi Somma - Initial work - GitHub

See also the list of contributors who participated in this project.

License

See the LICENSE file for details.

Acknowledgments

Part of this readme is based on Template-README-for-containers.md.

About

Ubuntu Docker with R and other packages needed for running CI for various EEG projects.

Resources

License

Stars

Watchers

Forks

Packages

No packages published