takeoff-env / takeoff Goto Github PK
View Code? Open in Web Editor NEWA rapid development environment using docker for convenience.
Home Page: https://takeoff.sh/
License: MIT License
A rapid development environment using docker for convenience.
Home Page: https://takeoff.sh/
License: MIT License
Reported here: https://www.reddit.com/r/reactjs/comments/6y6ou2/takeoff_a_rapid_development_environment_designed/dml8k64/
Link to Docker forum here: https://forums.docker.com/t/vpnkit-is-using-port-80-can-we-tell-it-to-use-something-else/33284
Related to vpnkit
. Most likely a documentation issue that needs to be addressed.
The commands folder should not have a }
character in the name.
After running takeoff init <env>
and then cd
in to the folder I see the following:
drwxr-xr-x 3 brindy staff 96 15 Sep 16:11 blueprints
drwxr-xr-x 2 brindy staff 64 15 Sep 16:11 commands}
drwxr-xr-x 3 brindy staff 96 15 Sep 16:11 projects
cd
in to the folderls -la
As a users, for the following commands: build
, up
, down
I would like to be able to just pass a name of an environment and have it be build if the settings are available, otherwise display me an error.
Currently the command is hard coded as npm run build:dev
.
Instead if should be npm run build (--)dev
. It may need a switch depending on the library used.
Based on the name, the Dockerfile. files are used, as well as other environmental settings.
Output:
events.js:182
throw er; // Unhandled 'error' event
^
Error: spawn sleep ENOENT
at exports._errnoException (util.js:1016:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:189:19)
at onErrorNT (internal/child_process.js:366:16)
at _combinedTickCallback (internal/process/next_tick.js:102:11)
at process._tickCallback (internal/process/next_tick.js:161:9)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] to:build: `node utilities/takeoff/docker-compose-build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] to:build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
Will require further debugging
Hello, I cannot use software dependencies which require HR and legal confirmations outside of the standard license files.
Please consider to fork the project into a separate 'takeoff-social' which can contain a version of takeoff with the added non-code materials and social policies for people working on the takeoff project.
As per https://github.com/tanepiper/takeoff/blob/master/app/src/App/index.js#L12
Remove this as hard coded, provide it as a configuration option REDUX_DEV_TOOLS=true
Provide a better integrated login experience and started dashboard
Other libraries and frameworks such as Vue and Angular can also be hot-reloaded.
Provide some basic examples that can be dockerised
In the scripts
folder, replace the scripts with more agnostic small apps that can accept arguments to spawn commands
For me an environment is "production", "staging", etc.
When I ran takeoff init <env>
I was expecting it to be structured in a way that reflected this and allow me to add alternative environments based on the same overall source code, but it seems to be more of a "workspace", ie a collection of projects and configuration.
Further more, the Angular app itself appears to talk about environments, including the code:
if (environment.production) {
enableProdMode();
}
Have I misunderstood the intention or would an alternative name (like "workspace") be more appropriate?
Should be able to test that any release is stable between backend and frontend via end-to-end testing. Do this via pipeline (such as CircleCI)
Will be away from 8th September until 25th September for my honeymoon. Won't be actively checking this, but feel free to raise issues and PRs and I'll deal with them when I'm back. May check in from time to time.
As a Takeoff User
I want to use a CLI tool to control my environment
This tool should do will be deployed via npm install -g takeoff-env
and will provide the takeoff
cli command.
Benefits of moving to a CLI tool allow for a simpler install process, no need to clone a repo and this allows for the creation of multiple environments.
This list below also represents a task list for command that are not yet implemented, but v1.2.0
will release with a 1:1 mapping of all existing commands.
It will have the following commands and arguments (please note this list is not yet exhaustive as of first creation)
These are default arguments that all commands take:
takeoff init <envname>
It will take the following arguments:
--no-default
: Creates a plain folder with no default environment--blueprintName
: The name of a known blueprint from the blueprint repo, used for the default blueprint.--blueprintUrl
: URL to a git repository containing a blueprint, used for the default blueprint.takeoff new <envname>
It will take the following arguments:
--blueprintName
: The name of a known blueprint from the blueprint repo, used for the default blueprint.--blueprintUrl
: URL to a git repository containing a blueprint, used for the default blueprint. takeoff start <envname>
This will start the environment. At the end we should hand command back to the user, so possibly look at using this command to mux the environment.
takeoff stop <envname>
This will rebuild the environment.
takeoff build <envname>
This will rebuild the environment.
takeoff pull <envname>
This will pull the pre-built docker images in an environment.
takeoff rm <envname>
This will remove and environment
takeoff clean <envname>
This will clean an environment by removing caches and things like node_modules, but will leave the source files
Todo:
Developer response: I believe it's due to the user running the pip
version of docker-compose
which doesn't support version 3 of the compose files.
The fix is to uninstall any existing version of docker
and docker-compose
and install docker-ce
(Docker Community Edition) which includes both.
I have asked the user to confirm their docker version
takeoff init <env>
should fail fast if docker-compose
is not available.
takeoff init <env>
runs and does some stuff then shows an error if docker-compose
fails. Would be nicer for newbies like me to get that message first before it creates a load of stuff in the environment folder as it's not clear how to continue once docker-compose
is installed.
takeoff init <env>
where is an environment nameApp should compile after adding material.
App doesn't compile and complains that it can't find the module:
Module not found: Error: Can't resolve '/home/envuser/apphome/node_modules/@angular/material/prebuilt-themes/indigo-pink.css' in '/home/envuser/apphome'
takeoff init material
cd material/projects/default/env/frontend-app
ng add @angular/material --project=frontend-app
takeoff start
Workaround is to copy the css file in to the theme
folder and update angular.json.
After making changes to frontend-app it should automatically reload.
The app does not automatically reload. (Restarting the docker instance forces it.)
src/app/components/home/homepage.component.ts
ng serve
explicitly does support live reloadingA 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.