metabarj0 / carrier Goto Github PK
View Code? Open in Web Editor NEWComposable Autonomous and Simple Environment Builder
License: MIT License
Composable Autonomous and Simple Environment Builder
License: MIT License
Today, the appliance system of carrier
lacks of reusability/composability.
It can be seen by comparing the devenv-cpp
and the devenv-trinitycore
appliances.
Actually, devenv_trinitycore
needs all images devenv-cpp
requires.
But, these images have to be respecified in the manifest file of the devenv-trinitycore
appliance, thus leading to duplication and maintenance burden.
The purpose of this issue is to find a way to make an appliance 'inheritable' for another one, simplifying new specialized appliance creation and maintenance.
Today to create an image or an appliance, one must copy/paste an existing image or appliance project in a brand new directory then, modify the content of duplicated files.
The purpose of this issue is to add 2 new commands in image
and appliance
domains to allow one to create both interactively and programatically image and appliance projects.
For instance, carrier image create
will enter the interactive image creation process whereas carrier image create [options...]
will trigger the image project creation without the need of an input from the user.
Same thing for the appliance
domain.
Today, the appliance system works well with the image build system, ensuring the user has almost no input to provide in order to build or start a complete appliance.
Though services' images are correctly built, they lack of an image.dist
file describing their content.
Moreover, they also lack of utilities script named importPackageFrom
and exportPackageTo
that could allow these service images to behave just like carrier regular built images.
The purpose of this issue is to add these utilities as well as an image.dist
file describing the full content of any service image of an appliance.
Currently, the devenv-cpp
carrier
appliance is very simple and does not involve the use of lots of carrier
images.
The purpose of this issue is to make this appliance BDD ready, that is, able to sue the cucumber-cpp framework enabling behavior driven development.
This issue is related to the #6.
carrier
image creation process was born at the early stage of carrier
. It has been incorporated 'as-is' in the unique carrier script without thinking about performances (though it has been refactored for readability and testability purposes).
Today, while being created, an image use the overlay storage of its running container as temporary staging area.
The factorization feature opened the way to re-think existing image operations like the image creation.
After being implemented, an image being created won't use the overlay storage of its running container to build up. It should lead to a significant performance boost in image creations.
This issue is about to manage version of images.
Today, images does not provide the concept of version. The only version concept you can find is about the source files you download thanks to a variable in the manifest file.
The purpose of this issue is to implement a way to manage version of images.
Today, one can bootstrap its system with carrier
using the following command :
carrier bootstrap run
The purpose of this issue is not to change how the bootstrap run is invoked but how it performs.
Today it is kind of heavy :
base/archlinux
docker image, that is far to be lightweightgcc
(currently 7.2.0 and 7.3.0) that are the only supported versions so far must be cross-compiled to be useable with musl-libc
docker
installation is needed to create the metabarj0/docker-cli
image therefore, the base/archlinux
image is not the only one base image the bootstrap process needs.Once this issue will be solved, the bootstrap process should rely only on the alpine
docker image :
musl-libc
(though maybe not the latest version)metabarj0/docker-cli
image creationAdd a carrier
image for Ruby
Today, carrier
hold an image for LLVM 5.
I need LLVM 6 in order to test if the new clang can be used as a lint engine supporting compilation databases.
If it does not, at least, LLVM will be updated
This issue is directly related to #2.
As a result, new images should have their own directory in docker/share/images
:
As a user, I would like carrier
to be easier to use. As a result, a contextual help system could help providing me enough information to use carrier
correctly without the necessity to invoke the full and a way too much verbose help
.
Here are some examples :
carrier help
gives a better overview carrier
can do indicating all supported global commands, options and domains. The existing global help
command is insufficient today.carrier image help
gives a precise help on all supported commands and options associated with the image domaincarrier appliance start help
gives a precise help on all options that can be used with the start command of the appliance domainThe way metabarj0/gcc
is built forces one to explicitely specify rpath
and rpath-link
compilation flags for each project to build.
This issue is related to the #2 and could be implicitly solved.
Consequences :
carrier
images because these flags are always used on images requiring build with gccA 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.