add exec, run and scale, and the agent skill
The skill documents how to use myos: what to check before touching a host stack, how a reference resolves, what the three kinds of stack mean, and where each failure comes from. Every command it shows was run against the fixtures before being written down, which is how exec, run and scale turned out to be missing. AGENTS.md covers the other side: how to change myos without breaking the deployments that already run it.
This commit is contained in:
@@ -70,3 +70,10 @@ inc-app-print-env-vars | app-git | @make print-ENV_VARS
|
||||
inc-app-print-network-default | app-git | @make print-DOCKER_NETWORK_DEFAULT
|
||||
inc-app-stack-postgres-up | app-git | @make up STACK=postgres
|
||||
inc-app-unknown-target | app-git | @make doesnotexist
|
||||
cmd-exec-host | host-project | exec host/consul -- consul members
|
||||
cmd-exec-service | host-project | exec host/fabio SERVICE=fabio -- sh
|
||||
cmd-run-catalogue | app-nogit | run postgres -- psql -l
|
||||
cmd-scale | app-nogit | scale postgres SERVICE=postgres NUM=3
|
||||
cmd-ls | host-project | ls
|
||||
cmd-ls-groups | host-project | ls --groups
|
||||
cmd-env-domain | host-project | env DOMAIN
|
||||
|
||||
@@ -1,26 +1,2 @@
|
||||
ERROR: unknown command: run
|
||||
Usage: myos [options] <command> [stack...] [VAR=value...] [-- args...]
|
||||
|
||||
Options:
|
||||
-C DIR work in DIR instead of the current directory
|
||||
-e ENV environment (default: local, or ENV from the config)
|
||||
-H HOSTS run on remote hosts instead (comma separated, or "all")
|
||||
-n, --dry-run print the commands instead of running them
|
||||
-v, --verbose show what myos does
|
||||
-d, --debug show every command
|
||||
-h, --help this help
|
||||
|
||||
Commands:
|
||||
up down start stop restart recreate manage the containers of a stack
|
||||
ps logs config exec run inspect and enter them
|
||||
ls [--groups] list the stacks myos can see
|
||||
env [VAR...] show resolved variables
|
||||
doctor check the installation
|
||||
version print the myos version
|
||||
|
||||
Stacks:
|
||||
myos up the stack of the current directory
|
||||
myos up host a group, expanded from host=... in a .env or .mk
|
||||
myos up host/fabio a single stack
|
||||
myos up postgres:9.6 a versioned stack
|
||||
[exit 2]
|
||||
docker compose -f @WD@/docker-compose.yml -f @WD@/docker-compose.local.yml -f @WD@/docker/docker-compose.yml -f @MYOS@/share/compose/networks.yml -p tester-wd-local --project-directory @WD@ run --rm app
|
||||
[exit 0]
|
||||
|
||||
@@ -1,26 +1,4 @@
|
||||
ERROR: unknown command: scale
|
||||
Usage: myos [options] <command> [stack...] [VAR=value...] [-- args...]
|
||||
|
||||
Options:
|
||||
-C DIR work in DIR instead of the current directory
|
||||
-e ENV environment (default: local, or ENV from the config)
|
||||
-H HOSTS run on remote hosts instead (comma separated, or "all")
|
||||
-n, --dry-run print the commands instead of running them
|
||||
-v, --verbose show what myos does
|
||||
-d, --debug show every command
|
||||
-h, --help this help
|
||||
|
||||
Commands:
|
||||
up down start stop restart recreate manage the containers of a stack
|
||||
ps logs config exec run inspect and enter them
|
||||
ls [--groups] list the stacks myos can see
|
||||
env [VAR...] show resolved variables
|
||||
doctor check the installation
|
||||
version print the myos version
|
||||
|
||||
Stacks:
|
||||
myos up the stack of the current directory
|
||||
myos up host a group, expanded from host=... in a .env or .mk
|
||||
myos up host/fabio a single stack
|
||||
myos up postgres:9.6 a versioned stack
|
||||
[exit 2]
|
||||
docker network create tester-local
|
||||
docker network create testhost
|
||||
docker compose -f @WD@/docker-compose.yml -f @WD@/docker-compose.local.yml -f @WD@/docker/docker-compose.yml -f @MYOS@/share/compose/networks.yml -p tester-wd-local --project-directory @WD@ up -d --scale app=2
|
||||
[exit 0]
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
DOMAIN example.test
|
||||
[exit 0]
|
||||
@@ -0,0 +1,2 @@
|
||||
docker compose -f @WD@/stack/host/consul.yml -f @MYOS@/share/compose/networks.yml -p testhost --project-directory @WD@/stack/host exec consul consul members
|
||||
[exit 0]
|
||||
@@ -0,0 +1,2 @@
|
||||
docker compose -f @WD@/stack/host/fabio.yml -f @MYOS@/share/compose/networks.yml -p testhost --project-directory @WD@/stack/host exec fabio sh
|
||||
[exit 0]
|
||||
@@ -0,0 +1,4 @@
|
||||
host host/consul host/fabio host/registrator
|
||||
default postgres redis
|
||||
testing drone/drone redis
|
||||
[exit 0]
|
||||
@@ -0,0 +1,9 @@
|
||||
@WD@/stack
|
||||
host 3 compose file(s)
|
||||
@HOME@/.local/share/myos/stack
|
||||
User 1 compose file(s)
|
||||
drone 2 compose file(s)
|
||||
host 3 compose file(s)
|
||||
postgres 3 compose file(s)
|
||||
redis 1 compose file(s)
|
||||
[exit 0]
|
||||
@@ -0,0 +1,2 @@
|
||||
docker compose -f @HOME@/.local/share/myos/stack/postgres/postgres.yml -f @HOME@/.local/share/myos/stack/postgres/postgres.local.yml -f @MYOS@/share/compose/networks.yml -p tester-postgres-local --project-directory @HOME@/.local/share/myos/stack/postgres run --rm postgres psql -l
|
||||
[exit 0]
|
||||
@@ -0,0 +1,4 @@
|
||||
docker network create tester-local
|
||||
docker network create testhost
|
||||
docker compose -f @HOME@/.local/share/myos/stack/postgres/postgres.yml -f @HOME@/.local/share/myos/stack/postgres/postgres.local.yml -f @MYOS@/share/compose/networks.yml -p tester-postgres-local --project-directory @HOME@/.local/share/myos/stack/postgres up -d --scale postgres=3
|
||||
[exit 0]
|
||||
@@ -1,26 +1,2 @@
|
||||
ERROR: unknown command: exec
|
||||
Usage: myos [options] <command> [stack...] [VAR=value...] [-- args...]
|
||||
|
||||
Options:
|
||||
-C DIR work in DIR instead of the current directory
|
||||
-e ENV environment (default: local, or ENV from the config)
|
||||
-H HOSTS run on remote hosts instead (comma separated, or "all")
|
||||
-n, --dry-run print the commands instead of running them
|
||||
-v, --verbose show what myos does
|
||||
-d, --debug show every command
|
||||
-h, --help this help
|
||||
|
||||
Commands:
|
||||
up down start stop restart recreate manage the containers of a stack
|
||||
ps logs config exec run inspect and enter them
|
||||
ls [--groups] list the stacks myos can see
|
||||
env [VAR...] show resolved variables
|
||||
doctor check the installation
|
||||
version print the myos version
|
||||
|
||||
Stacks:
|
||||
myos up the stack of the current directory
|
||||
myos up host a group, expanded from host=... in a .env or .mk
|
||||
myos up host/fabio a single stack
|
||||
myos up postgres:9.6 a versioned stack
|
||||
[exit 2]
|
||||
docker compose -f @WD@/stack/host/consul.yml -f @MYOS@/share/compose/networks.yml -p testhost --project-directory @WD@/stack/host exec consul
|
||||
[exit 0]
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
WARNING: myos[0] env-rule-exists: target env unavailable in app myos
|
||||
WARNING: myos[0] DOMAIN-rule-exists: target DOMAIN unavailable in app myos
|
||||
[exit 0]
|
||||
@@ -0,0 +1,5 @@
|
||||
docker --log-level=error compose --ansi=auto -f @MYOS@/share/compose/networks.yml -p tester-myos-local exec -T sh -c host/consul consul members
|
||||
/bin/bash: -c: line 0: syntax error near unexpected token `||'
|
||||
/bin/bash: -c: line 0: `|| true'
|
||||
make: *** [exec] Error 2
|
||||
[exit 2]
|
||||
@@ -0,0 +1,5 @@
|
||||
docker --log-level=error compose --ansi=auto -f @MYOS@/share/compose/networks.yml -p tester-myos-local exec -T fabio sh -c host/fabio sh
|
||||
/bin/bash: -c: line 0: syntax error near unexpected token `||'
|
||||
/bin/bash: -c: line 0: `|| true'
|
||||
make: *** [exec] Error 2
|
||||
[exit 2]
|
||||
@@ -0,0 +1,46 @@
|
||||
make: unrecognized option `--groups'
|
||||
Usage: make [options] [target] ...
|
||||
Options:
|
||||
-b, -m Ignored for compatibility.
|
||||
-B, --always-make Unconditionally make all targets.
|
||||
-C DIRECTORY, --directory=DIRECTORY
|
||||
Change to DIRECTORY before doing anything.
|
||||
-d Print lots of debugging information.
|
||||
--debug[=FLAGS] Print various types of debugging information.
|
||||
-e, --environment-overrides
|
||||
Environment variables override makefiles.
|
||||
-f FILE, --file=FILE, --makefile=FILE
|
||||
Read FILE as a makefile.
|
||||
-h, --help Print this message and exit.
|
||||
-i, --ignore-errors Ignore errors from commands.
|
||||
-I DIRECTORY, --include-dir=DIRECTORY
|
||||
Search DIRECTORY for included makefiles.
|
||||
-j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg.
|
||||
-k, --keep-going Keep going when some targets can't be made.
|
||||
-l [N], --load-average[=N], --max-load[=N]
|
||||
Don't start multiple jobs unless load is below N.
|
||||
-L, --check-symlink-times Use the latest mtime between symlinks and target.
|
||||
-n, --just-print, --dry-run, --recon
|
||||
Don't actually run any commands; just print them.
|
||||
-o FILE, --old-file=FILE, --assume-old=FILE
|
||||
Consider FILE to be very old and don't remake it.
|
||||
-p, --print-data-base Print make's internal database.
|
||||
-q, --question Run no commands; exit status says if up to date.
|
||||
-r, --no-builtin-rules Disable the built-in implicit rules.
|
||||
-R, --no-builtin-variables Disable the built-in variable settings.
|
||||
-s, --silent, --quiet Don't echo commands.
|
||||
-S, --no-keep-going, --stop
|
||||
Turns off -k.
|
||||
-t, --touch Touch targets instead of remaking them.
|
||||
-v, --version Print the version number of make and exit.
|
||||
-w, --print-directory Print the current directory.
|
||||
--no-print-directory Turn off -w, even if it was turned on implicitly.
|
||||
-W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE
|
||||
Consider FILE to be infinitely new.
|
||||
--warn-undefined-variables Warn when an undefined variable is referenced.
|
||||
-N OPTION, --NeXT-option=OPTION
|
||||
Turn on value of NeXT OPTION.
|
||||
|
||||
This program built for i386-apple-darwin11.3.0
|
||||
Report bugs to <bug-make@gnu.org>
|
||||
[exit 2]
|
||||
@@ -0,0 +1,2 @@
|
||||
WARNING: myos[0] ls-rule-exists: target ls unavailable in app myos
|
||||
[exit 0]
|
||||
@@ -0,0 +1,2 @@
|
||||
docker --log-level=error compose --ansi=auto -f @MYOS@/share/compose/networks.yml -p tester-myos-local run --rm postgres psql -l
|
||||
[exit 0]
|
||||
@@ -0,0 +1,4 @@
|
||||
make -o docker-stack-scale MAKE_OLDFILE=docker-stack-scale ENV=local DOCKER_COMPOSE=docker --log-level=error compose docker-compose-scale STACK=myos APP_NAME=myos
|
||||
docker --log-level=error compose --ansi=auto -f @MYOS@/share/compose/networks.yml -p tester-myos-local up -d --scale postgres=3
|
||||
WARNING: myos[0] postgres-rule-exists: target postgres unavailable in app myos
|
||||
[exit 0]
|
||||
Reference in New Issue
Block a user