GithubHelp home page GithubHelp logo

takeoff-env / takeoff Goto Github PK

View Code? Open in Web Editor NEW
271.0 271.0 17.0 1.01 MB

A rapid development environment using docker for convenience.

Home Page: https://takeoff.sh/

License: MIT License

JavaScript 10.46% Ruby 11.07% HTML 4.64% TypeScript 70.30% Shell 3.54%
convenience database developer-tools development development-environment devops devops-tools docker dockerfile frontend hacktoberfest hapi jwt ngnix node postgresql react redux router

takeoff's People

Contributors

rococtz avatar tanepiper avatar toddpress 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

takeoff's Issues

Bug: commands folder has } character in name

Expected Behavior

The commands folder should not have a } character in the name.

Actual Behavior

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

Steps to Reproduce the Problem

  1. Run `takeoff init where is an environment name.
  2. cd in to the folder
  3. Run ls -la

Specifications

  • Version: 2.0.8
  • Platform: macOS 10.13.6 (High Sierra)
  • Subsystem:

Custom names for commands

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.

Windows docker-compose build fails

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

remove CODE_OF_CONDUCT, fork into separate project 'takeoff-social'

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.

Discussion: "environment" nomenclature in the documentation is confusing

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?

Build CI Pipeline

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)

Takeoff CLI Proposal

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)

Default Arguments

These are default arguments that all commands take:

  • takeoff init <envname>
    This command will create a folder that will be the users Takeoff environment, in here we create a place to cache blueprints, create environments to run, and allow users to extend commands (similar to gulp).

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>
    This command is used within a Takeoff folder and creates a new environment. With no arguments it will make a clone of the default blueprint as a fresh new environment with a new name. If you pass arguments you can create different environment types.

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:

  • Provide plugin format for commands
  • Provide way to read commands from environment and directory as well as application defaults

Reported: Unable to run docker compose file

Reported here: https://medium.com/@GarrettHogan/tried-to-clone-the-repo-and-run-locally-and-i-got-a-docker-error-service-version-doesn-t-have-85b7d15901ac

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

  • Request User to check their docker and docker compose version
  • Advise user to try steps above
  • Confirm this issue is related to outdated docker versions

Suggestion: Fail fast if docker-compose is unavailable

Expected Behavior

takeoff init <env> should fail fast if docker-compose is not available.

Actual Behavior

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.

Steps to Reproduce the Problem

  1. Without docker-compose installed, run takeoff init <env> where is an environment name

Specifications

  • Version: 2.0.8
  • Platform: macOS 10.13.6 (High Sierra)
  • Subsystem:

Help: frontend-app - Module not found after adding material

Expected Behavior

App should compile after adding material.

Actual Behavior

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'

Steps to Reproduce the Problem

  1. takeoff init material
  2. cd material/projects/default/env/frontend-app
  3. ng add @angular/material --project=frontend-app
  4. takeoff start

Workaround is to copy the css file in to the theme folder and update angular.json.

Specifications

  • Version: 2.0.8
  • Platform: macOS 10.13.6 (High Sierra)
  • Subsystem:

Bug: live reloading does not work

Expected Behavior

After making changes to frontend-app it should automatically reload.

Actual Behavior

The app does not automatically reload. (Restarting the docker instance forces it.)

Steps to Reproduce the Problem

  1. Create a new project
  2. Edit a file in the project, e.g. change something visual in src/app/components/home/homepage.component.ts
  3. Running ng serve explicitly does support live reloading

Specifications

  • Version: 2.0.8
  • Platform: macOS 10.13.6 (High Sierra)
  • Subsystem:

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.