dsd-dbs / capella-dockerimages Goto Github PK
View Code? Open in Web Editor NEWCollection of Docker images for MBSE. Most images are based on Eclipse Capella.
Home Page: https://dsd-dbs.github.io/capella-dockerimages/
License: Apache License 2.0
Collection of Docker images for MBSE. Most images are based on Eclipse Capella.
Home Page: https://dsd-dbs.github.io/capella-dockerimages/
License: Apache License 2.0
Add the following lines to all Dockerfiles:
SHELL ["/bin/bash", "-euo", "pipefail", "-c"]
ENV SHELL=/bin/bash
Our Gitlab CI template should get a bit more advanced:
Split each jobs into three stages: build, test (optional) and push
Either run all steps in one job in a sequence (I'd say the best solution) or use nested dynamic pipelines: https://www.youtube.com/watch?v=C5j3ju9je2M
In a team-for-capella model, I tried to add a model element link to a logical function description. The link dialog showed up, I successfully selected a model element and confirmed the link dialog. Then, when I'd have expected the link to be added to the description text, the description window freezes and I get this error prompt:
The Capella session doesn't recover after that, repeatedly error messages pop up when trying to edit any description. The only way out is to close it and open a new one.
The error also occurs when I don't select a model element and cancel the link dialog.
The read-only session fails when using a starting /
in the entrypoint.
Check compatibility with Capella version 6.1.0
.
After reconnecting to a session, copy/paste doesn't work anymore.
Some potential workarounds are listed here: neutrinolabs/xrdp#1188
The project name is escaped to BZB2.0%40ARCH, but T4C expects BZB2.0@ARCH.
Add a quick start section to build all Dockerimages in their default configurations. We should write a Makefile with targets for all images.
Additionally, we should have some goals to run images.
Add Github templates for diagram cache and model validation (same behaviour as Gitlab CI templates: https://github.com/DSD-DBS/capella-dockerimages/blob/main/ci-templates/gitlab/README.md)
Due to the GIT_ASKPASS
configuration, the usage of the Git integration of Eclipse is not possible. However, users would like to clone and push Git repositories with authentication. Therefore, we have to set a proper git credential manager during preparation.
1 projects exports failed
in the log should lead to error code 1.
Many Capella models depend on specific dropins.
We should offer three sets of dropins for all Capella based images:
none
- No dropins are included (how it is handled currently)selected
- The following dropins are included:
all
- All open source dropins (with EPL license): https://www.eclipse.org/capella/addons.htmlChange the username to login in the entrypoint. This should allow login with a different username in xrdp.
Add image for Papyrus: https://www.eclipse.org/papyrus/download.html
It should be possible to run pure::variants
in a separate container without Capella.
When the script is invoked via EASE, one doesn't get any stacktrace. We should move all parts which are unrelated to the workspace import into a separate script. When running externally, we can get the stracktrace, which makes debugging a lot easier.
The description editor in Capella doesn't work with the latest GTK version. For the installation of older GTK versions we depend on the focal
apt repository of Ubuntu. Versions for architectures like arm are missing in the registry. It would be nice to build them from source.
Git repositories should be cloned into /workspace/git
instead of /home/techuser/git
. In the Git preferences, this can be changed. The workspace should be prepared properly.
The metrics script on the remote container runs 100% CPU.
The script is busy-looping at the end of the file. This is not needed for a simple HTTP server that should only perform a bit of work when invoked.
In case of a SIGTERM
, Capella should be closed properly.
Instructions: https://stackoverflow.com/questions/6391705/how-to-cleanly-shutdown-eclipse-from-linux-command-line
SIGTERM
, terminate the tool and supervisordCurrently, we load all archives for each Capella version into the Docker build context. This is not a good solution as it slows down the whole build process. We need to generate a dockerignore
file before we start the build in the Makefile, which ignores all other Capella versions, so that only the relevant version is loaded into the build context.
Consider the environment variables that are used in the Makefile as variables in the test for the image.
DOCKER_REGISTRY
and DOCKER_TAG
are the interesting ones.
In some sessions the user does see "Invalid license". The license does not get injected in the right way.
While following the build guide on my quest to get a running capella-ease container I am stuck in download-eclipse-packages-manually. Running the presented commands with capellac ... won't work since my machine doesn't know of this command. Yet there is no explanation on how to use capella/eclipse to download all files from a given Eclipse software repository URL.
Production builds should only work on tags - not on branch names. A simple regex v[0-9]+\.[0-9]+\.[0-9]+
is ok as check.
This prevents "messing" up the production registry.
It is possible to set an entry point (GIT_REPO_ENTRYPOINT
) that specifies where the .aird
file should be placed. Therefore, we should also perform a backup test using this environment variable.
XRDP seems to run as non root, so there should not be a dependency on the techuser. We should be able to spawn the server regardless of the user.
https://github.com/neutrinolabs/xrdp/wiki/Running-the-xrdp-process-as-non-root
If the user has set wrong permissions for the Capella archive, the build fails. We should set the permissions properly.
We need a service within a session container (capella-dockerimages/remote) to expose user inactivity time (in seconds) on port 9118 (configurable) in OpenMetrics format
The service start should be managed by supervisord so that the service is available even before a user is logged in
Hi guys!
Thank you very much for this images are really useful. (I was getting mad about the downgrade dependencies of gtk) .
My little contribution is the following (how I use it):
I've created a docker-compose.yml like the following:
version: "3"
services:
capella:
image: capella/base:latest
environment:
- DISPLAY=${DISPLAY}
- GTK_THEME=Adwaita
volumes:
- /tmp/.X11-unix:/tmp/.X11-unix
- ./git:/git
- ./extworkspace:/extworkspace
network_mode: host
entrypoint: ./capella/capella -data /extworkspace
Basically it sets the DISPLAY variable accordingly to execute GUIs application inside the docker and sets my git and an external workspace to use by default.
here some reference on GUI apps on docker.
https://gursimar27.medium.com/run-gui-applications-in-a-docker-container-ca625bad4638
The success message is different for Capella 5.0.0.
Our number of images has grown, leading to long build times. We can simplify it a bit:
capella/base
and t4c/client/base
, deprecate capella/cli
and t4c/client/cli
.capella/base
as "preparation script", deprecate capella/readonly
t4c/client/base
, deprecate t4c/client/backup
and t4c/client/exporter
.Currently, the TeamForCapella backup flattens the directory structure, leading to failed backups when an image appears two times in different directories.
With -archiveProject
, the directory structure is not flattened. We can use -archiveProject
and unzip the archive automatically.
We should run pytest
for the read-only and remote containers in Github Actions.
The pure::variants license path /home/techuser/pure-variants-5
is hardcoded for pure::variants version 5. It is should depend on the version, for version 6 it should be /home/techuser/pure-variants-6
.
Possible workaround:
As discussed in a conversation on #108 (comment) , ENV
and SHELL
are inherited when using FROM
, so we can remove these two lines in all of our dockerfiles having base
as the base image (which should be all files).
Users want to see their original commits in the history of their GitLab repository. Currently the backup job is just doing one commit and all individual commits with their messages are not included in the model repository on GitLab. Having the original commits migrated, enables many features/actions available on GitLab. For e.g. issues on the model repo, or Jira tickets can be referenced and their status can be changed (e.g. closed).
The images have to be tested with Capella 6.0. Most likely, it will just work.
How to reproduce: Start the remote docker container, try to type in '@'. Nothing happens.
We should add an option to install a specific Java version instead of using the integrated Java version of Capella.
In Capella 6.0.0, the arguments of the importer script have been changed. Thus, the backups fail as we haven't noticed it.
We need a full integration test.
Add a new pytest for the backup job:
t4c/server/tests/data/$CAPELLA_VERSION
git http-backend
command might be helpful.backup
Docker containerIn addition, the backup image should have support for Capella 6.0.0:
backup
Dockerfile / Python script to support Capella 6.0.0.Hi,
I recently noticed that there exists a simple line formatting error in teams for capella web instance. For example in the picture below there is an arrow which has added by line formatting i.e. using right click -> format -> arrow type.
The issue here is that, the arrow or any other formatting with regards to line thickness or line type done on the line vanishes on session restart i.e. Starting a session post termination.
Clone command/submodule command cannot update this submodule:
git submodule update --init --recursive
remote: Repository not found.
fatal: repository 'https://github.com/DSD-DBS/pyease.git/' not found
fatal: clone of 'https://github.com/DSD-DBS/pyease.git' into submodule path 'DS_Capella/capella-dockerimages/ease/pyease' failed
What is pyease
and is it a closed component?
Thanks!
While the authentication for normal Git repositories works fine, cloning a Git LFS repository from the Capella GUI results in an error. It tries to use the GIT_AKSPASS
, which fails because the GIT_USERNAME
and GIT_PASSWORD
environment variables are not set.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.