Giter VIP home page Giter VIP logo

Comments (14)

olexii4 avatar olexii4 commented on August 16, 2024 1

The quick fix for bringing Node.js and all required libraries:

FROM docker.io/debian:buster

USER 0

RUN apt-get update && apt-get install -y curl && apt-get clean

ENV NODE_VERSION=v18.18.2
ENV NODE_DISTRO=linux-x64
ENV NODE_BASE_URL=[https://nodejs.org/dist/${NODE_VERSION}](https://nodejs.org/dist/$%7BNODE_VERSION%7D)

RUN curl -fsSL ${NODE_BASE_URL}/node-${NODE_VERSION}-${NODE_DISTRO}.tar.gz -o node-${NODE_VERSION}-${NODE_DISTRO}.tar.gz \
  && mkdir -p /usr/local/lib/nodejs \
  && tar -xzf node-${NODE_VERSION}-${NODE_DISTRO}.tar.gz -C /usr/local/lib/nodejs \
  && rm node-${NODE_VERSION}-${NODE_DISTRO}.tar.gz

ENV VSCODE_NODEJS_RUNTIME_DIR=/usr/local/lib/nodejs/node-${NODE_VERSION}-${NODE_DISTRO}/bin
ENV PATH=${VSCODE_NODEJS_RUNTIME_DIR}:$PATH

from che.

ibuziuk avatar ibuziuk commented on August 16, 2024

сс: @RomanNikitenko

from che.

RomanNikitenko avatar RomanNikitenko commented on August 16, 2024

@ibuziuk
I provided support for ubi9-based containers, but no one worked on ubuntu support.

So, I would say:

  • at the current step it's expected that starting IDE doesn't work for ubuntu
  • I'm not sure bug label is suitable for this issue as AFAIK we didn't have it working previously

from che.

monaka avatar monaka commented on August 16, 2024

How about images provided by us PizzaFactory project ?
We bake Debian, Ubuntu, and Alpine based images almost everyday.

https://github.com/pizzafactory-contorno

They are not UBI-like but only specific tools are contained (similar to ancient versions of che-images).

Even though I suppose you can make your swiss-army-knife from our base images.
https://hub.docker.com/r/pizzafactory0contorno/piatto

from che.

RomanNikitenko avatar RomanNikitenko commented on August 16, 2024

@monaka
Hello!

We bake Debian, Ubuntu, and Alpine based images almost everyday.
They are not UBI-like but only specific tools are contained

I think @olexii4 means that Che-Code should start in a vanilla ubuntu container, so like Che-Code should bring Node.js and all required libraries to a user's container.

from che.

RomanNikitenko avatar RomanNikitenko commented on August 16, 2024

Something similar I described in another issue for ubuntu #22183 (comment)

from che.

monaka avatar monaka commented on August 16, 2024

I think @olexii4 means that Che-Code should start in a vanilla ubuntu container,

Hmm, but the quick fix that is shown by @olexii4 isn't a vanilla image...

so like Che-Code should bring Node.js and all required libraries to a user's container.

I'm not sure why this plan fixes the issue... It might be that I should dig a little deeper.

from che.

RomanNikitenko avatar RomanNikitenko commented on August 16, 2024

but the quick fix that is shown by @olexii4 isn't a vanilla image...

I would say - it's a workaround

from che.

monaka avatar monaka commented on August 16, 2024

@RomanNikitenko I think I see the point of this issue.
che-code should provide /checode/checode-linux-libc/{ubuntu|deibian|brah-brah}, right?

from che.

RomanNikitenko avatar RomanNikitenko commented on August 16, 2024

@monaka

che-code should provide /checode/checode-linux-libc/{ubuntu|deibian|brah-brah}, right?

We use that approach for ubi8/ubi9.

In fact, to run Che-Code in a user's container we need:

  • Node.js
  • Che-Code assembly
  • some libraries are required for Node.js + VS Code dependencies

At starting a workspace we copy Node.js + Che-Code assembly to a user's container.
The problem is: Node.js relies on some shared libraries:
image

For example, it's possible to start a workspace for docker.io/ubuntu: 22.04 as a user's container.
It means that docker.io/ubuntu: 22.04 has required libraries.
At the same time it's impossible to start a workspace for the docker.io/ubuntu:20.04 based container - some libraries are absent in the image/container.

Node.js can not be run if a library is absent in a user's container.
So, we need a solution that will provide all required libraries to a user's container.

from che.

monaka avatar monaka commented on August 16, 2024

So, we need a solution that will provide all required libraries to a user's container.

Well. And it can be solved by ...

  • Adding some shared libs to /checode/checode-linux-libc/{Ubuntu|...}/lib.
  • Adding a path /checode/.../lib to LD_LIBRARY_PATH.

from che.

RomanNikitenko avatar RomanNikitenko commented on August 16, 2024

@monaka
We use such approach: https://github.com/che-incubator/che-code/blob/a711ca09a1e0a6e0ac3c2a88f17be2e5f6de679a/build/scripts/entrypoint-volume.sh#L94

from che.

monaka avatar monaka commented on August 16, 2024

I read che-incubator/che-code#332 also.
I suppose I can add some contributions to che-code, as some of my customers will want to use Ubuntu based images.

BTW... I guess there are similar issues in jetbrains-editor-images potentially, right?

from che.

RomanNikitenko avatar RomanNikitenko commented on August 16, 2024

I suppose I can add some contributions to che-code, as some of my customers will want to use Ubuntu based images.

You are very welcome!

BTW... I guess there are similar issues in jetbrains-editor-images potentially, right?

If I'm not mistaken, it's an example of such problem:
#22847 (comment)

from che.

Related Issues (20)

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.