Expand arguments to be more self-explanatory in logs
This commit is contained in:
@@ -14,7 +14,7 @@ class CliAccessoryTest < CliTestCase
|
||||
end
|
||||
|
||||
test "boot" do
|
||||
assert_match "Running docker run --name app-mysql -d --restart unless-stopped --log-opt max-size=10m -p 3306:3306 -e [REDACTED] -e MYSQL_ROOT_HOST=% --volume $PWD/app-mysql/etc/mysql/my.cnf:/etc/mysql/my.cnf --volume $PWD/app-mysql/data:/var/lib/mysql --label service=app-mysql mysql:5.7 on 1.1.1.3", run_command("boot", "mysql")
|
||||
assert_match "Running docker run --name app-mysql --detach --restart unless-stopped --log-opt max-size=10m --publish 3306:3306 -e [REDACTED] -e MYSQL_ROOT_HOST=% --volume $PWD/app-mysql/etc/mysql/my.cnf:/etc/mysql/my.cnf --volume $PWD/app-mysql/data:/var/lib/mysql --label service=app-mysql mysql:5.7 on 1.1.1.3", run_command("boot", "mysql")
|
||||
end
|
||||
|
||||
test "exec" do
|
||||
@@ -34,7 +34,7 @@ class CliAccessoryTest < CliTestCase
|
||||
test "remove with confirmation" do
|
||||
run_command("remove", "mysql", "-y").tap do |output|
|
||||
assert_match /docker container stop app-mysql/, output
|
||||
assert_match /docker image prune -a -f --filter label=service=app-mysql/, output
|
||||
assert_match /docker image prune --all --force --filter label=service=app-mysql/, output
|
||||
assert_match /rm -rf app-mysql/, output
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2,7 +2,7 @@ require_relative "cli_test_case"
|
||||
|
||||
class CliAppTest < CliTestCase
|
||||
test "boot" do
|
||||
assert_match /Running docker run -d --restart unless-stopped/, run_command("boot")
|
||||
assert_match /Running docker run --detach --restart unless-stopped/, run_command("boot")
|
||||
end
|
||||
|
||||
test "boot will reboot if same version is already running" do
|
||||
@@ -15,8 +15,8 @@ class CliAppTest < CliTestCase
|
||||
|
||||
run_command("boot").tap do |output|
|
||||
assert_match /Rebooting container with same version already deployed/, output # Can't start what's already running
|
||||
assert_match /docker ps -q --filter label=service=app \| xargs docker stop/, output # Stop what's running
|
||||
assert_match /docker container ls -a -f name=app-999 -q \| xargs docker container rm/, output # Remove old container
|
||||
assert_match /docker ps --quiet --filter label=service=app \| xargs docker stop/, output # Stop what's running
|
||||
assert_match /docker container ls --all --filter name=app-999 --quiet \| xargs docker container rm/, output # Remove old container
|
||||
assert_match /docker run/, output # Start new container
|
||||
end
|
||||
ensure
|
||||
@@ -31,7 +31,7 @@ class CliAppTest < CliTestCase
|
||||
|
||||
test "stop" do
|
||||
run_command("stop").tap do |output|
|
||||
assert_match /docker ps -q --filter label=service=app \| xargs docker stop/, output
|
||||
assert_match /docker ps --quiet --filter label=service=app \| xargs docker stop/, output
|
||||
end
|
||||
end
|
||||
|
||||
@@ -43,15 +43,15 @@ class CliAppTest < CliTestCase
|
||||
|
||||
test "remove" do
|
||||
run_command("remove").tap do |output|
|
||||
assert_match /docker ps -q --filter label=service=app | xargs docker stop/, output
|
||||
assert_match /docker container prune -f --filter label=service=app/, output
|
||||
assert_match /docker image prune -a -f --filter label=service=app/, output
|
||||
assert_match /docker ps --quiet --filter label=service=app | xargs docker stop/, output
|
||||
assert_match /docker container prune --force --filter label=service=app/, output
|
||||
assert_match /docker image prune --all --force --filter label=service=app/, output
|
||||
end
|
||||
end
|
||||
|
||||
test "remove_container" do
|
||||
run_command("remove_container", "1234567").tap do |output|
|
||||
assert_match /docker container ls -a -f name=app-1234567 -q \| xargs docker container rm/, output
|
||||
assert_match /docker container ls --all --filter name=app-1234567 --quiet \| xargs docker container rm/, output
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ class CliMainTest < CliTestCase
|
||||
run_command("details") # Preheat MRSK const
|
||||
|
||||
run_command("rollback", "nonsense").tap do |output|
|
||||
assert_match /docker container ls -a --filter label=service=app --format '{{ .Names }}'/, output
|
||||
assert_match /docker container ls --all --filter label=service=app --format '{{ .Names }}'/, output
|
||||
assert_match /The app version 'nonsense' is not available as a container/, output
|
||||
end
|
||||
end
|
||||
@@ -28,21 +28,21 @@ class CliMainTest < CliTestCase
|
||||
test "remove with confirmation" do
|
||||
run_command("remove", "-y").tap do |output|
|
||||
assert_match /docker container stop traefik/, output
|
||||
assert_match /docker container prune -f --filter label=org.opencontainers.image.title=Traefik/, output
|
||||
assert_match /docker image prune -a -f --filter label=org.opencontainers.image.title=Traefik/, output
|
||||
assert_match /docker container prune --force --filter label=org.opencontainers.image.title=Traefik/, output
|
||||
assert_match /docker image prune --all --force --filter label=org.opencontainers.image.title=Traefik/, output
|
||||
|
||||
assert_match /docker ps -q --filter label=service=app | xargs docker stop/, output
|
||||
assert_match /docker container prune -f --filter label=service=app/, output
|
||||
assert_match /docker image prune -a -f --filter label=service=app/, output
|
||||
assert_match /docker ps --quiet --filter label=service=app | xargs docker stop/, output
|
||||
assert_match /docker container prune --force --filter label=service=app/, output
|
||||
assert_match /docker image prune --all --force --filter label=service=app/, output
|
||||
|
||||
assert_match /docker container stop app-mysql/, output
|
||||
assert_match /docker container prune -f --filter label=service=app-mysql/, output
|
||||
assert_match /docker image prune -a -f --filter label=service=app-mysql/, output
|
||||
assert_match /docker container prune --force --filter label=service=app-mysql/, output
|
||||
assert_match /docker image prune --all --force --filter label=service=app-mysql/, output
|
||||
assert_match /rm -rf app-mysql/, output
|
||||
|
||||
assert_match /docker container stop app-redis/, output
|
||||
assert_match /docker container prune -f --filter label=service=app-redis/, output
|
||||
assert_match /docker image prune -a -f --filter label=service=app-redis/, output
|
||||
assert_match /docker container prune --force --filter label=service=app-redis/, output
|
||||
assert_match /docker image prune --all --force --filter label=service=app-redis/, output
|
||||
assert_match /rm -rf app-redis/, output
|
||||
|
||||
assert_match /docker logout/, output
|
||||
|
||||
@@ -49,11 +49,11 @@ class CommandsAccessoryTest < ActiveSupport::TestCase
|
||||
|
||||
test "run" do
|
||||
assert_equal \
|
||||
"docker run --name app-mysql -d --restart unless-stopped --log-opt max-size=10m -p 3306:3306 -e MYSQL_ROOT_PASSWORD=secret123 -e MYSQL_ROOT_HOST=% --label service=app-mysql mysql:8.0",
|
||||
"docker run --name app-mysql --detach --restart unless-stopped --log-opt max-size=10m --publish 3306:3306 -e MYSQL_ROOT_PASSWORD=secret123 -e MYSQL_ROOT_HOST=% --label service=app-mysql mysql:8.0",
|
||||
@mysql.run.join(" ")
|
||||
|
||||
assert_equal \
|
||||
"docker run --name app-redis -d --restart unless-stopped --log-opt max-size=10m -p 6379:6379 -e SOMETHING=else --volume /var/lib/redis:/data --label service=app-redis --label cache=true redis:latest",
|
||||
"docker run --name app-redis --detach --restart unless-stopped --log-opt max-size=10m --publish 6379:6379 -e SOMETHING=else --volume /var/lib/redis:/data --label service=app-redis --label cache=true redis:latest",
|
||||
@redis.run.join(" ")
|
||||
end
|
||||
|
||||
@@ -106,29 +106,29 @@ class CommandsAccessoryTest < ActiveSupport::TestCase
|
||||
|
||||
test "logs" do
|
||||
assert_equal \
|
||||
"docker logs app-mysql -t 2>&1",
|
||||
"docker logs app-mysql --timestamps 2>&1",
|
||||
@mysql.logs.join(" ")
|
||||
|
||||
assert_equal \
|
||||
"docker logs app-mysql --since 5m -n 100 -t 2>&1 | grep 'thing'",
|
||||
"docker logs app-mysql --since 5m --tail 100 --timestamps 2>&1 | grep 'thing'",
|
||||
@mysql.logs(since: "5m", lines: 100, grep: "thing").join(" ")
|
||||
end
|
||||
|
||||
test "follow logs" do
|
||||
assert_equal \
|
||||
"ssh -t root@1.1.1.5 'docker logs app-mysql -t -n 10 -f 2>&1'",
|
||||
"ssh -t root@1.1.1.5 'docker logs app-mysql --timestamps --tail 10 --follow 2>&1'",
|
||||
@mysql.follow_logs
|
||||
end
|
||||
|
||||
test "remove container" do
|
||||
assert_equal \
|
||||
"docker container prune -f --filter label=service=app-mysql",
|
||||
"docker container prune --force --filter label=service=app-mysql",
|
||||
@mysql.remove_container.join(" ")
|
||||
end
|
||||
|
||||
test "remove image" do
|
||||
assert_equal \
|
||||
"docker image prune -a -f --filter label=service=app-mysql",
|
||||
"docker image prune --all --force --filter label=service=app-mysql",
|
||||
@mysql.remove_image.join(" ")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -14,7 +14,7 @@ class CommandsAppTest < ActiveSupport::TestCase
|
||||
|
||||
test "run" do
|
||||
assert_equal \
|
||||
"docker run -d --restart unless-stopped --log-opt max-size=10m --name app-999 -e RAILS_MASTER_KEY=456 --label service=app --label role=web --label traefik.http.routers.app.rule='PathPrefix(`/`)' --label traefik.http.services.app.loadbalancer.healthcheck.path=/up --label traefik.http.services.app.loadbalancer.healthcheck.interval=1s --label traefik.http.middlewares.app.retry.attempts=3 --label traefik.http.middlewares.app.retry.initialinterval=500ms dhh/app:999",
|
||||
"docker run --detach --restart unless-stopped --log-opt max-size=10m --name app-999 -e RAILS_MASTER_KEY=456 --label service=app --label role=web --label traefik.http.routers.app.rule='PathPrefix(`/`)' --label traefik.http.services.app.loadbalancer.healthcheck.path=/up --label traefik.http.services.app.loadbalancer.healthcheck.interval=1s --label traefik.http.middlewares.app.retry.attempts=3 --label traefik.http.middlewares.app.retry.initialinterval=500ms dhh/app:999",
|
||||
@app.run.join(" ")
|
||||
end
|
||||
|
||||
@@ -22,7 +22,7 @@ class CommandsAppTest < ActiveSupport::TestCase
|
||||
@config[:volumes] = ["/local/path:/container/path" ]
|
||||
|
||||
assert_equal \
|
||||
"docker run -d --restart unless-stopped --log-opt max-size=10m --name app-999 -e RAILS_MASTER_KEY=456 --volume /local/path:/container/path --label service=app --label role=web --label traefik.http.routers.app.rule='PathPrefix(`/`)' --label traefik.http.services.app.loadbalancer.healthcheck.path=/up --label traefik.http.services.app.loadbalancer.healthcheck.interval=1s --label traefik.http.middlewares.app.retry.attempts=3 --label traefik.http.middlewares.app.retry.initialinterval=500ms dhh/app:999",
|
||||
"docker run --detach --restart unless-stopped --log-opt max-size=10m --name app-999 -e RAILS_MASTER_KEY=456 --volume /local/path:/container/path --label service=app --label role=web --label traefik.http.routers.app.rule='PathPrefix(`/`)' --label traefik.http.services.app.loadbalancer.healthcheck.path=/up --label traefik.http.services.app.loadbalancer.healthcheck.interval=1s --label traefik.http.middlewares.app.retry.attempts=3 --label traefik.http.middlewares.app.retry.initialinterval=500ms dhh/app:999",
|
||||
@app.run.join(" ")
|
||||
end
|
||||
|
||||
@@ -30,7 +30,7 @@ class CommandsAppTest < ActiveSupport::TestCase
|
||||
@config[:healthcheck] = { "path" => "/healthz" }
|
||||
|
||||
assert_equal \
|
||||
"docker run -d --restart unless-stopped --log-opt max-size=10m --name app-999 -e RAILS_MASTER_KEY=456 --label service=app --label role=web --label traefik.http.routers.app.rule='PathPrefix(`/`)' --label traefik.http.services.app.loadbalancer.healthcheck.path=/healthz --label traefik.http.services.app.loadbalancer.healthcheck.interval=1s --label traefik.http.middlewares.app.retry.attempts=3 --label traefik.http.middlewares.app.retry.initialinterval=500ms dhh/app:999",
|
||||
"docker run --detach --restart unless-stopped --log-opt max-size=10m --name app-999 -e RAILS_MASTER_KEY=456 --label service=app --label role=web --label traefik.http.routers.app.rule='PathPrefix(`/`)' --label traefik.http.services.app.loadbalancer.healthcheck.path=/healthz --label traefik.http.services.app.loadbalancer.healthcheck.interval=1s --label traefik.http.middlewares.app.retry.attempts=3 --label traefik.http.middlewares.app.retry.initialinterval=500ms dhh/app:999",
|
||||
@app.run.join(" ")
|
||||
end
|
||||
|
||||
@@ -42,7 +42,7 @@ class CommandsAppTest < ActiveSupport::TestCase
|
||||
|
||||
test "stop" do
|
||||
assert_equal \
|
||||
"docker ps -q --filter label=service=app | xargs docker stop",
|
||||
"docker ps --quiet --filter label=service=app | xargs docker stop",
|
||||
@app.stop.join(" ")
|
||||
end
|
||||
|
||||
@@ -55,38 +55,38 @@ class CommandsAppTest < ActiveSupport::TestCase
|
||||
|
||||
test "logs" do
|
||||
assert_equal \
|
||||
"docker ps -q --filter label=service=app | xargs docker logs 2>&1",
|
||||
"docker ps --quiet --filter label=service=app | xargs docker logs 2>&1",
|
||||
@app.logs.join(" ")
|
||||
|
||||
assert_equal \
|
||||
"docker ps -q --filter label=service=app | xargs docker logs --since 5m 2>&1",
|
||||
"docker ps --quiet --filter label=service=app | xargs docker logs --since 5m 2>&1",
|
||||
@app.logs(since: "5m").join(" ")
|
||||
|
||||
assert_equal \
|
||||
"docker ps -q --filter label=service=app | xargs docker logs -n 100 2>&1",
|
||||
"docker ps --quiet --filter label=service=app | xargs docker logs --tail 100 2>&1",
|
||||
@app.logs(lines: "100").join(" ")
|
||||
|
||||
assert_equal \
|
||||
"docker ps -q --filter label=service=app | xargs docker logs --since 5m -n 100 2>&1",
|
||||
"docker ps --quiet --filter label=service=app | xargs docker logs --since 5m --tail 100 2>&1",
|
||||
@app.logs(since: "5m", lines: "100").join(" ")
|
||||
|
||||
assert_equal \
|
||||
"docker ps -q --filter label=service=app | xargs docker logs 2>&1 | grep 'my-id'",
|
||||
"docker ps --quiet --filter label=service=app | xargs docker logs 2>&1 | grep 'my-id'",
|
||||
@app.logs(grep: "my-id").join(" ")
|
||||
|
||||
assert_equal \
|
||||
"docker ps -q --filter label=service=app | xargs docker logs --since 5m 2>&1 | grep 'my-id'",
|
||||
"docker ps --quiet --filter label=service=app | xargs docker logs --since 5m 2>&1 | grep 'my-id'",
|
||||
@app.logs(since: "5m", grep: "my-id").join(" ")
|
||||
end
|
||||
|
||||
test "follow logs" do
|
||||
@app.stub(:run_over_ssh, ->(cmd, host:) { cmd.join(" ") }) do
|
||||
assert_equal \
|
||||
"docker ps -q --filter label=service=app | xargs docker logs -t -n 10 -f 2>&1",
|
||||
"docker ps --quiet --filter label=service=app | xargs docker logs --timestamps --tail 10 --follow 2>&1",
|
||||
@app.follow_logs(host: "app-1")
|
||||
|
||||
assert_equal \
|
||||
"docker ps -q --filter label=service=app | xargs docker logs -t -n 10 -f 2>&1 | grep \"Completed\"",
|
||||
"docker ps --quiet --filter label=service=app | xargs docker logs --timestamps --tail 10 --follow 2>&1 | grep \"Completed\"",
|
||||
@app.follow_logs(host: "app-1", grep: "Completed")
|
||||
end
|
||||
end
|
||||
@@ -145,13 +145,13 @@ class CommandsAppTest < ActiveSupport::TestCase
|
||||
|
||||
test "current_container_id" do
|
||||
assert_equal \
|
||||
"docker ps -q --filter label=service=app",
|
||||
"docker ps --quiet --filter label=service=app",
|
||||
@app.current_container_id.join(" ")
|
||||
end
|
||||
|
||||
test "container_id_for" do
|
||||
assert_equal \
|
||||
"docker container ls -a -f name=app-999 -q",
|
||||
"docker container ls --all --filter name=app-999 --quiet",
|
||||
@app.container_id_for(container_name: "app-999").join(" ")
|
||||
end
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ class CommandsHealthcheckTest < ActiveSupport::TestCase
|
||||
|
||||
test "run" do
|
||||
assert_equal \
|
||||
"docker run -d --name healthcheck-app-123 -p 3999:3000 --label service=healthcheck-app dhh/app:123",
|
||||
"docker run --detach --name healthcheck-app-123 --publish 3999:3000 --label service=healthcheck-app dhh/app:123",
|
||||
new_command.run.join(" ")
|
||||
end
|
||||
|
||||
@@ -18,7 +18,7 @@ class CommandsHealthcheckTest < ActiveSupport::TestCase
|
||||
@config[:healthcheck] = { "port" => 3001 }
|
||||
|
||||
assert_equal \
|
||||
"docker run -d --name healthcheck-app-123 -p 3999:3001 --label service=healthcheck-app dhh/app:123",
|
||||
"docker run --detach --name healthcheck-app-123 --publish 3999:3001 --label service=healthcheck-app dhh/app:123",
|
||||
new_command.run.join(" ")
|
||||
end
|
||||
|
||||
@@ -38,13 +38,13 @@ class CommandsHealthcheckTest < ActiveSupport::TestCase
|
||||
|
||||
test "stop" do
|
||||
assert_equal \
|
||||
"docker container ls -a -f name=healthcheck-app -q | xargs docker stop",
|
||||
"docker container ls --all --filter name=healthcheck-app --quiet | xargs docker stop",
|
||||
new_command.stop.join(" ")
|
||||
end
|
||||
|
||||
test "remove" do
|
||||
assert_equal \
|
||||
"docker container ls -a -f name=healthcheck-app -q | xargs docker container rm",
|
||||
"docker container ls --all --filter name=healthcheck-app --quiet | xargs docker container rm",
|
||||
new_command.remove.join(" ")
|
||||
end
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ class CommandsTraefikTest < ActiveSupport::TestCase
|
||||
|
||||
test "run" do
|
||||
assert_equal \
|
||||
"docker run --name traefik -d --restart unless-stopped --log-opt max-size=10m -p 80:80 -v /var/run/docker.sock:/var/run/docker.sock traefik --providers.docker --log.level=DEBUG --accesslog.format json --metrics.prometheus.buckets 0.1,0.3,1.2,5.0",
|
||||
"docker run --name traefik --detach --restart unless-stopped --log-opt max-size=10m --publish 80:80 --volume /var/run/docker.sock:/var/run/docker.sock traefik --providers.docker --log.level=DEBUG --accesslog.format json --metrics.prometheus.buckets 0.1,0.3,1.2,5.0",
|
||||
new_command.run.join(" ")
|
||||
end
|
||||
|
||||
@@ -34,49 +34,49 @@ class CommandsTraefikTest < ActiveSupport::TestCase
|
||||
|
||||
test "traefik logs" do
|
||||
assert_equal \
|
||||
"docker logs traefik -t 2>&1",
|
||||
"docker logs traefik --timestamps 2>&1",
|
||||
new_command.logs.join(" ")
|
||||
end
|
||||
|
||||
test "traefik logs since 2h" do
|
||||
assert_equal \
|
||||
"docker logs traefik --since 2h -t 2>&1",
|
||||
"docker logs traefik --since 2h --timestamps 2>&1",
|
||||
new_command.logs(since: '2h').join(" ")
|
||||
end
|
||||
|
||||
test "traefik logs last 10 lines" do
|
||||
assert_equal \
|
||||
"docker logs traefik -n 10 -t 2>&1",
|
||||
"docker logs traefik --tail 10 --timestamps 2>&1",
|
||||
new_command.logs(lines: 10).join(" ")
|
||||
end
|
||||
|
||||
test "traefik logs with grep hello!" do
|
||||
assert_equal \
|
||||
"docker logs traefik -t 2>&1 | grep 'hello!'",
|
||||
"docker logs traefik --timestamps 2>&1 | grep 'hello!'",
|
||||
new_command.logs(grep: 'hello!').join(" ")
|
||||
end
|
||||
|
||||
test "traefik remove container" do
|
||||
assert_equal \
|
||||
"docker container prune -f --filter label=org.opencontainers.image.title=Traefik",
|
||||
"docker container prune --force --filter label=org.opencontainers.image.title=Traefik",
|
||||
new_command.remove_container.join(" ")
|
||||
end
|
||||
|
||||
test "traefik remove image" do
|
||||
assert_equal \
|
||||
"docker image prune -a -f --filter label=org.opencontainers.image.title=Traefik",
|
||||
"docker image prune --all --force --filter label=org.opencontainers.image.title=Traefik",
|
||||
new_command.remove_image.join(" ")
|
||||
end
|
||||
|
||||
test "traefik follow logs" do
|
||||
assert_equal \
|
||||
"ssh -t root@1.1.1.1 'docker logs traefik -t -n 10 -f 2>&1'",
|
||||
"ssh -t root@1.1.1.1 'docker logs traefik --timestamps --tail 10 --follow 2>&1'",
|
||||
new_command.follow_logs(host: @config[:servers].first)
|
||||
end
|
||||
|
||||
test "traefik follow logs with grep hello!" do
|
||||
assert_equal \
|
||||
"ssh -t root@1.1.1.1 'docker logs traefik -t -n 10 -f 2>&1 | grep \"hello!\"'",
|
||||
"ssh -t root@1.1.1.1 'docker logs traefik --timestamps --tail 10 --follow 2>&1 | grep \"hello!\"'",
|
||||
new_command.follow_logs(host: @config[:servers].first, grep: 'hello!')
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user