Giter Club home page Giter Club logo

dockerfiles's Introduction

Dockerfiles

A collection of dockerfiles and ansible scripts used by developers and CI for mantid.

The images are split into folders by OS with documentation for editing and deploying setups available in each folder.

dockerfiles's People

Contributors

cailafinn avatar dannixon avatar davidfair avatar martyngigg avatar miallewis avatar mohamedalmaki avatar pasarus avatar robertapplin avatar rosswhitfield avatar sf1919 avatar silkeschomann avatar thomashampson avatar warunawickramasingha avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dockerfiles's Issues

Windows docker run .bat script

Description:

  • Add instructions for running a centos/ubuntu docker container from a windows environment.
  • Add a .bat script (similar to mantid_development.sh) that will run the docker container from a windows environment. The current shell script doesn't work on windows.

Tidy dockerfiles repo and packages

Now that we have moved to conda packaging and are in the process of moving our Jenkins agents to new, slimmed down docker images it would be good to clean up the dockerfiles repo.

Major changes

  • rename repo to jenkins-agents
  • Create top level directory for Linux and move relevant folders
  • Create top level directory for Windows and create relevant sub-folders
  • Create top level directory for OSX

Remove directories that are no longer needed

  • mantid/
  • development/bin/

Delete any files not associated with new slim docker images from following directories

  • development/docker/
  • jenkins-node/mantid-builder/docker-images/
  • development/docker/configure/

Assess function of following directories and their contents

  • scripts/
  • development/bin/
  • jenkins-node/deployment/
  • jenkins-node/mantid-builder/bin/

Update documentation

  • Expand on top level readme.md to better describe the repo and it's contents
  • Create readme docs for each OS folder and move exisiting information as appropriate

Tidy dockerfiles in packages

Nightly images

Provide images with the nightly built packages installed, mostly the same as the release images.

Create bare-bones Linux mantid development Docker image

Following on moving mantid to Conda, we no longer require separate images for specific Linux distributions.

Create a minimal Linux image with the required tools to build Mantid with inside Conda. I would suggest choosing CentOS 7 as the base image to match Qt on conda-forge.

Other tools that are required:

  • git
  • curl
  • latex rpms:
    • texlive-latex
    • texlive-latex-bin
    • texlive-was
    • tex-preview

mantid_development.sh: --ipc=host needed for chown permission

The recent updates (specifically commit 329090d) break mantid_development.sh for me, failing to mount readable volumes with the following output:

+ TARGET_USERNAME=abc
+ for rule in /etc/entrypoint.d/*.sh
+ env TARGET_USERNAME=abc /etc/entrypoint.d/10_change_user_ids.sh
+ PUID=1000
+ PGID=1000
+ groupmod --non-unique --gid 1000 abc
+ usermod --non-unique --uid 1000 abc
+ for rule in /etc/entrypoint.d/*.sh
+ env TARGET_USERNAME=abc /etc/entrypoint.d/20_abc_own_directories.sh
+ chown abc:abc /mantid_src
chown: changing ownership of '/mantid_src': Permission denied
+ chown abc:abc /mantid_build
chown: changing ownership of '/mantid_build': Permission denied
+ chown abc:abc /mantid_data
chown: changing ownership of '/mantid_data': Permission denied
+ chown abc:abc /ccache
+ CMD=bash
+ runuser -u abc -- bash
abc@ee926268edd1:/mantid_build$

The former behaviour is restored (without "permission denied" errors) if I reintroduce the --icp=host argument to docker within this script. This option is mentioned in the updated docs as being necessary for X windowing, but seems to have a wider impact?

A factor that is probably relevant is that I don't run docker as root but use a docker group instead. Perhaps the recent updates make an assumption that docker was run by root?

Investigate increasing memory usage on `isiscloudwin` machines

It is possible that the memory being used on the isiscloudwin machines is gradually going up over time. We should investigate if this is the case, and find out why. Ideally, we shouldn't need to keep cleaning up the system manually when it runs out of memory.

Useful command docker system df and docker system prune -a. The memory used up by the containers is probably where the problem lies (if there is a problem).

Analysis Jenkins image

Make a slimmed down image that contains all the analysis tools for Jenkins use.

Cppcheck might have to remain on Ubuntu Bionic as it has to actually have the dependencies, etc.

All the others may be possible to do using a miniconda image with the Jenkins agent on top.

  • flake8==2.5.4
  • pep8==1.6.2
  • pyflakes==1.3.0
  • mccabe==0.6.1
  • doxygen 1.8.11
  • clang-format 5.0.0

killall missing from jenkins Ubuntu images

The Jenkins build scripts are using killall to kill any existing Xvfb instances. It would appear that killall is not installed in the jenkins images. The build log shows: /jenkins_workdir/workspace/pull_requests-ubuntu-python3/buildconfig/Jenkins/buildscript: line 48: killall: command not found

Upgrade macOS builders to at least Big Sur (v11)

Both the current running mac builders are on High Sierra (10.13). This hasn't been getting security updates since november 2020. We should be on at least Big Sur, which is still getting updates. We should avoid upgrading to ventura though, since there's been some issues with JAMF and the network at RAL.

The current running builders don't support anything higher than high-sierra, they're too old.
We need some way of building both an ARM and an x86 version of Mantid on an ARM machine.

Reorder development dockerfiles

Currently changing installed packages required rebuilding Paraview (twice).

Change the order things are installed so that helper tools, static analysis tools, debuggers, etc. are installed towards the end of the Dockerfile.

Properly test builds

Need to verify the following will work:

  • build
  • test
  • systemtests
  • doctests

Once verified the Jenkins node images should work fine for build machines.

cc: @peterfpeterson

Investigate ansible script for OSX setup

OSX build agents have typically been setup manually. We are unable to create docker containers for these machines but an ansible script should make setting up OSX machines easier. It will also ensure all machines are using the same setup.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.