Coder Social home page Coder Social logo

ontariosystems / iscenv Goto Github PK

View Code? Open in Web Editor NEW
7.0 9.0 1.0 36.38 MB

This utility allows the user to manage docker-based ISC product instances

License: Apache License 2.0

Makefile 0.34% Go 99.66%
intersystems-cache intersystems-ensemble intersystems-docker intersystems docker intersystems-iris

iscenv's Introduction

ISCEnv

Latest Release CLA assistant Build Status Go Report Card GoDoc

This utility allows the user to manage docker-based ISC product instances. These instances are meant to be used as development environments on a Linux host.

Usage

The command consists of a single command line utility iscenv. This utility is self-documenting. Please refer to its help for further documentation on each command.

Caveats

  • Do not add a default namespace to the root user on the instance, this will break features that wrap csession as it can no longer use the -U switch

Known issues

  • Orphaned plugins are occasionally left running after the primary process exits. This prevents upgrades. They can be killed by (after stopping all running iscenv containers) executing killall iscenv

Future changes

Rejected Features

  • Make all commands return the instance name rather than the container ID We're using full logging now rather than specific items being printed to stdout
  • Add Service wrappers for the containers which will restart them on reboot We want iscenv to remain thin, users should do this themselves
  • Have prep update the deployment service Removing the deployment service from ISCEnv altogether
  • Add a command that reads a simple configuration file to set up a specific environment
    Just use a simple bash script
  • Make "prep" an external that does the ssh to the container, make another internal weird named prep that it uses
    The purpose of this was to allow prep to be called again on an existing instance. Instead just recreate the instance using start --rm.
  • Add the ability to recognize when running in a repository and name the instance after the repository, use Gem to determine the version, use a .file to determine the port.
    This could be a secondary tool but does not belong as part of this tool. It ties us too many external systems and complicates this simple single purpose tool.

iscenv's People

Contributors

b-dean avatar dependabot[bot] avatar krmichel avatar krmichelos avatar lheinlen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

mebays

iscenv's Issues

Add the ability to attach volumes

Currently you can specify volumes if you have iscenv _start set as the entrypoint and running via docker run. However, when managing a container with the iscenv command line volumes-from is the only volume management that is available. Support for --mount and probably --volume should be added.

Change from linked containers to docker network

Currently additional containers are connected to the main container by container linking, a legacy feature. This should be replaced by having a docker network that the containers can share.

The csp lifecycle plugin should allow mounting of apache or ngnix configuration

The containers.intersystems.com/intersystems/webgateway or containers.intersystems.com/intersystems/webgateway-nginx images from https://containers.intersystems.com/ don't have any websites defined (such as apache VirtualHosts or nginx server). It would be nice to be able to provide a path to a website to use in the container that's started.

Something like:

iscenv start --csp-conf-dir /path/to/apache/config --version 2023.3 example

This maybe could be related the the volume mounting mentioned in #2

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.