Code Monkey home page Code Monkey logo

docker-devel-env's Introduction

docker-devel-env's People

Contributors

bernddoser avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-devel-env's Issues

User has no permissions to update eclipse plugins

The eclipse plugin directory '/usr/local/eclipse/plugins/' is owned by root and the eclipse container is running by default as user. Therefore, it is not possible to update the plugins by clicking 'Help/Checking for Updates'. I will try to fix this by changing the ownership of the plugin directory to the running user.

Missing library libxcb-dri3.so.0 for vscode-1.49.1

Starting vscode-1.49.1 with

docker run -d -v /tmp/.X11-unix:/tmp/.X11-unix:ro -e DISPLAY braintwister/ubuntu-20.04-vscode-1.49.1:0.4

shows following error message using docker logs:

/usr/share/code/bin/../code: error while loading shared libraries: libxcb-dri3.so.0: cannot open shared object file: No such file or directory

cuda-9.2 didn't start

Running the docker image braintwister/ubuntu-18.04-cuda-9.2-cmake-3.12-gcc-7-conan-1.8-docker-18.06-eclipse-cpp-2018-09 on a docker host with CUDA 9.2, following error occurs:

WARNING: Image for service eclipse was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating eclipse-cpp_eclipse_1 ... error

ERROR: for eclipse-cpp_eclipse_1  Cannot start service eclipse: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:402: container init caused \"process_linux.go:385: running prestart hook 1 caused \\\"error running hook: exit status 1, stdout: , stderr: exec command: [/usr/bin/nvidia-container-cli --load-kmods configure --ldconfig=@/sbin/ldconfig.real --device=all --compute --utility --require=cuda>=10.0 brand=tesla,driver>=384,driver<385 --pid=25159 /var/lib/docker/aufs/mnt/d8ebef6b2e08d52c075d029202420724d033c1f3d7542c59d0bec296db60d5a7]\\\\nnvidia-container-cli: requirement error: invalid expression\\\\n\\\"\"": unknown

ERROR: for eclipse  Cannot start service eclipse: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:402: container init caused \"process_linux.go:385: running prestart hook 1 caused \\\"error running hook: exit status 1, stdout: , stderr: exec command: [/usr/bin/nvidia-container-cli --load-kmods configure --ldconfig=@/sbin/ldconfig.real --device=all --compute --utility --require=cuda>=10.0 brand=tesla,driver>=384,driver<385 --pid=25159 /var/lib/docker/aufs/mnt/d8ebef6b2e08d52c075d029202420724d033c1f3d7542c59d0bec296db60d5a7]\\\\nnvidia-container-cli: requirement error: invalid expression\\\\n\\\"\"": unknown
ERROR: Encountered errors while bringing up the project.

Export {USER|GROUP}_{ID|NAME} to make them available in the module entrypoint scripts

At the moment the user information is only locally available in the main entrypoint script:

USER_ID=${USER_ID:-9001}
GROUP_ID=${GROUP_ID:-${USER_ID}}
USER_NAME=${USER_NAME:-user}
GROUP_NAME=${GROUP_NAME:-${USER_NAME}}

By exporting them they will be available also in the module entrypoint scripts. To be sure not disturbing systems, where these variables are used, we prefix BT_ to them.

Use image versioning

The module versions are not enough. Changes in the configuration will overwrite published images. Therefore, I will provide image versioning to ensure that published images will not change and it is easier to determine their build state.

Always take the latest patch version

If the module provide patch versions (x.y.z), the docker module providing only a upper level of version, e.g.minor version (x.y) should automatically take the largest patch level available during build-time.

vscode immediately stops after starting container

vscode is starting in detached mode, which closes the docker container immediately after vs code was started. The option --wait will fix this, but the container will still exit when all tabs are closed. As a workaround I keep the container running as long as the PIDs, got with pidof code, are active.

Use eclipse download mirror sites

Sometimes eclipse.org is very slow or even not reachable. In this cases it would be helpful to switch to a other download site. Also the checksum of the downloaded file should be checked.

Use a combinatorial image list

To simplify the image list we can use a combinatorial list.

The line

 - ['ubuntu-18.04', ['gcc-9', 'clang-9'], ['eclipse-cpp-2019-06', 'vscode-1.41']]

will build following images:

  • ubuntu-18.04-gcc-9-eclipse-cpp-2019-06
  • ubuntu-18.04-clang-9-eclipse-cpp-2019-06
  • ubuntu-18.04-gcc-9-vscode-1.41
  • ubuntu-18.04-clang-9-vscode-1.41

Implicit build of intermediate images

At the moment all intermediate images must be explicitly listed in front of the final image. For instance if the image ubuntu-16.04-cmake-3.11-gcc-7-conan-1.2-docker-18.03-eclipse-cpp-4.7.3 is needed, the image list must be

  • ['ubuntu-16.04']
  • ['ubuntu-16.04', 'cmake-3.11']
  • ['ubuntu-16.04', 'cmake-3.11', 'gcc-7']
  • ['ubuntu-16.04', 'cmake-3.11', 'gcc-7', 'conan-1.2']
  • ['ubuntu-16.04', 'cmake-3.11', 'gcc-7', 'conan-1.2', 'docker-18.03']
  • ['ubuntu-16.04', 'cmake-3.11', 'gcc-7', 'conan-1.2', 'docker-18.03', 'eclipse-cpp-4.7.3']

To be more clear, the image list should only contain the final images. Additionally, only the final images have to be pushed to the docker repository, which also reduce the needed storage.

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.