{"id":18546442,"url":"https://github.com/adroll/ecs-ship","last_synced_at":"2025-04-09T20:30:58.860Z","repository":{"id":43272787,"uuid":"342392029","full_name":"AdRoll/ecs-ship","owner":"AdRoll","description":"Ship your code to your ECS infraestructure with ecs-ship. Unless it's Friday in which case, don't ship it.","archived":false,"fork":false,"pushed_at":"2025-03-20T13:43:57.000Z","size":69,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-03-24T11:12:18.084Z","etag":null,"topics":["aws","devops","docker","ecs"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AdRoll.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-25T22:07:16.000Z","updated_at":"2025-02-11T11:49:17.000Z","dependencies_parsed_at":"2024-11-06T20:32:35.509Z","dependency_job_id":"2facda00-6436-4f57-821d-1ce910434326","html_url":"https://github.com/AdRoll/ecs-ship","commit_stats":{"total_commits":19,"total_committers":1,"mean_commits":19.0,"dds":0.0,"last_synced_commit":"bb616fbd3da5a287bd6d20d5ed3c3b62dc3cc03e"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdRoll%2Fecs-ship","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdRoll%2Fecs-ship/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdRoll%2Fecs-ship/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdRoll%2Fecs-ship/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AdRoll","download_url":"https://codeload.github.com/AdRoll/ecs-ship/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248107194,"owners_count":21048876,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","devops","docker","ecs"],"created_at":"2024-11-06T20:24:59.132Z","updated_at":"2025-04-09T20:30:58.849Z","avatar_url":"https://github.com/AdRoll.png","language":"Go","readme":"# :ship::it: ecs-ship\n\nYet another implementation of the ecs-deploy tool. `ecs-ship` will allow you to\ndeploy changes to your ECS services by patching its current configuration.\n\nHere are the steps that `ecs-ship` does for you:\n\n1. Grab the configuration from the `cluster` and `service` you specify.\n2. Apply the patches you can specify from the command line.\n3. Create a task definition out of the patched configuration.\n4. Deploy the service with the new task definition.\n5. Wait for stability.\n\n## Usage\n\n```\nNAME:\n   ecs-ship - Deploy your aws ecs services.\n\nUSAGE:\n   ecs-deploy [options] \u003ccluster\u003e \u003cservice\u003e\n\nVERSION:\n   2.0.0\n\nGLOBAL OPTIONS:\n   --updates FILE, -u FILE          Use an input FILE to describe service updates (default: stdin)\n   --timeout DURATION, -t DURATION  Wait this DURATION for the service to be correctly updated (default: 5m0s)\n   --no-color, -n                   Disable colored output (default: false)\n   --no-wait, -w                    Disable waiting for updates to be completed. (default: false)\n   --dry, -d                        Don't deploy just show what would change in the remote service (default: false)\n   --help, -h                       show help\n   --version, -v                    print the version\n```\n\nFor the input file you can use this yaml schema:\n\n```yml\ncpu: \"95\"\nmemory: \"34\"\ncontainerDefinitions:\n  someContainer:\n    cpu: 95\n    environment:\n      NAME: value\n    image: \"some-image:someTag\"\n    memory: 34\n    memoryReservation: 34\n```\n\n**Notice** that every part of the input is optional, so the idea is that you\njust pass in the values that you need.\n\n## Getting `ecs-ship`\n\nYou can grab ssh ship from [DockerHub][docker-hub] from the repository\n[nextroll/ecs-ship][docker-repo] or from the console by:\n\n```bash\ndocker pull nextroll/ecs-ship\ndocker run --rm nextroll/ecs-ship ecs-ship --help\n```\n\nYou can also grab a Linux staticly linked binary from the [releases\npage][releases] and drop it in your environment.\n\nFinally you can grab the source code either from the [AdRoll/ecs-ship][repo]\nrepo or from the releases page and build yourself a fresh version using go.\n\n```bash\ngo build .\n```\n\n## Examples\n\nHere's an example for updating a container image to the latest version:\n\n```bash\ncat \u003c\u003c EOF | ecs-ship cluster service\ncontainerDefinitions:\n  someContainer:\n    image: \"some-image:latestTag\"\nEOF\n```\n\nHere's an example where you just change an environment variable of a sevice:\n\n```bash\ncat \u003c\u003c EOF | ecs-ship cluster service\ncontainerDefinitions:\n  someContainer:\n    environment:\n      SECRETS_BUCKET: \"s3://updated-secrets-bucket\"\nEOF\n```\n\nHere's yet ahother example where you just want to lower the cpu requirements of\nyour service to lower your costs:\n\n```bash\ncat \u003c\u003c EOF | ecs-ship cluster service\ncpu: \"50\"\ncontainerDefinitions:\n  someContainer:\n    cpu: 50\n```\n\n## Development\n\nWe provide some make commands for your development convenience.\n\n```shell\nmake mod      # load dependencies\nmake lint     # check code\nmake test     # run unit tests\nmake build    # build app (see artifacts/ecs-deploy)\nmake mockgen  # rebuild mocked entities\n```\n\n[docker-hub]: https://hub.docker.com/r/nextroll/ecs-ship\n[docker-repo]: https://hub.docker.com/r/nextroll/ecs-ship\n[releases]: https://github.com/AdRoll/ecs-ship/releases\n[repo]: https://github.com/AdRoll/ecs-ship\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadroll%2Fecs-ship","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadroll%2Fecs-ship","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadroll%2Fecs-ship/lists"}