|
|
5 years ago | |
|---|---|---|
| .github | 5 years ago | |
| aci | 5 years ago | |
| backend | 5 years ago | |
| cli | 5 years ago | |
| client | 5 years ago | |
| compose | 5 years ago | |
| config | 5 years ago | |
| containers | 5 years ago | |
| context | 5 years ago | |
| docs | 5 years ago | |
| ecs | 5 years ago | |
| errdefs | 5 years ago | |
| example | 5 years ago | |
| formatter | 5 years ago | |
| local | 5 years ago | |
| metrics | 5 years ago | |
| progress | 5 years ago | |
| prompt | 5 years ago | |
| protos | 5 years ago | |
| scripts | 5 years ago | |
| secrets | 5 years ago | |
| server | 5 years ago | |
| tests | 5 years ago | |
| utils | 5 years ago | |
| .dockerignore | 5 years ago | |
| .gitattributes | 5 years ago | |
| .gitignore | 5 years ago | |
| .golangci.yml | 5 years ago | |
| CHANGELOG.md | 5 years ago | |
| CONTRIBUTING.md | 5 years ago | |
| Dockerfile | 5 years ago | |
| LICENSE | 5 years ago | |
| MAINTAINERS | 5 years ago | |
| Makefile | 5 years ago | |
| NOTICE | 5 years ago | |
| README.md | 5 years ago | |
| builder.Makefile | 5 years ago | |
| go.mod | 5 years ago | |
| go.sum | 5 years ago | |
| import-restrictions.yaml | 5 years ago |
This CLI tool makes it easy to run containers in the cloud using either Amazon Elastic Container Service (ECS) or Microsoft Azure Container Instances (ACI) using the Docker commands you already know.
To get started, all you need is:
:warning: This CLI is currently in beta please create issues to leave feedback
Once you have the prerequisites installed, you can build the CLI using:
make
This will output a CLI for your host machine in ./bin.
You will then need to make sure that you have the existing Docker CLI in your
PATH with the name com.docker.cli. A make target is provided to help with
this:
make moby-cli-link
This will create a symbolic link from the existing Docker CLI to
/usr/local/bin with the name com.docker.cli.
You can statically cross compile the CLI for Windows, macOS, and Linux using the
cross target.
You can specify which backends are build using the BUILD_TAGS variable.
The available backends are:
aci: For ACI support (always built)ecs: For ECS support (on by default)example: Testing backend (off by default)local: Beginnings of a moby backend
(off by default)If you want the ACI, ECS and example backends, then you can build as follows:
make BUILD_TAGS=example cli
The API provided by the CLI is defined using protobuf. If you make changes to
the .proto files in protos/, you will need to regenerate the API
code:
make protos
To run all of the unit tests, run:
make test
If you need to update a golden file simply do go test ./... -test.update-golden.
To run the local end to end tests, run:
make e2e-local
Note that this requires the CLI to be built and a local Docker Engine to be running.
To run the end to end ACI tests, you will first need to have an Azure account
and have created a service principal. You can create a service principle using
the Azure CLI after you have done a docker login azure:
$ docker login azure
$ az ad sp create-for-rbac --name 'MyTestServicePrincipal' --sdk-auth
You can then run the ACI tests using the e2e-aci target with the various
AZURE_ environment variables set:
AZURE_TENANT_ID="xxx" AZURE_CLIENT_ID="yyy" AZURE_CLIENT_SECRET="yyy" make e2e-aci
Running the ACI tests will override your local login and the service principal credentials use a token that cannot be refreshed automatically.
Note: You will need to rerun docker login azure if you would like to use the
CLI after running the ACI tests.
You can also run a single ACI test by specifying the test name with the
E2E_TEST variable:
AZURE_TENANT_ID="xxx" AZURE_CLIENT_ID="yyy" AZURE_CLIENT_SECRET="yyy" make E2E_TEST=TestContainerRun e2e-aci
To run the end to end ECS tests, you will need to have an AWS account and have
credentials for it in the ~/.aws/credentials file.
You can then use the e2e-ecs target:
TEST_AWS_PROFILE=myProfile TEST_AWS_REGION=eu-west-3 make e2e-ecs
To create a new release:
Pushing the tag will automatically create a new release and make binaries for Windows, macOS, and Linux available for download on the releases page.