https://github.com/ontariosystems/iscenv
This utility allows the user to manage docker-based ISC product instances
https://github.com/ontariosystems/iscenv
docker intersystems intersystems-cache intersystems-docker intersystems-ensemble intersystems-iris
Last synced: 9 months ago
JSON representation
This utility allows the user to manage docker-based ISC product instances
- Host: GitHub
- URL: https://github.com/ontariosystems/iscenv
- Owner: ontariosystems
- License: apache-2.0
- Created: 2018-03-20T19:43:08.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2025-03-13T01:52:44.000Z (10 months ago)
- Last Synced: 2025-04-18T09:34:33.246Z (9 months ago)
- Topics: docker, intersystems, intersystems-cache, intersystems-docker, intersystems-ensemble, intersystems-iris
- Language: Go
- Homepage:
- Size: 35.6 MB
- Stars: 7
- Watchers: 8
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ISCEnv
[](https://github.com/ontariosystems/iscenv/releases)
[](https://cla-assistant.io/ontariosystems/iscenv)
[](https://github.com/ontariosystems/iscenv/actions/workflows/build.yml)
[](https://goreportcard.com/report/github.com/ontariosystems/iscenv/v3)
[](https://godoc.org/github.com/ontariosystems/iscenv/v3)
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
- Rework plugin system to use [go plugins](https://golang.org/pkg/plugin/) ([simple example](https://jeremywho.com/go-1.8---plugins/))
## 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.**