1
0

Тайлбар байхгүй

Guillaume Tardif 7326234e25 Merge pull request #440 from docker/dependabot/go_modules/github.com/Azure/go-autorest/autorest/adal-0.9.1 5 жил өмнө
.dependabot 9c21e09044 Run dependabot daily instead of weekly 5 жил өмнө
.github c26b5ffd97 repo: Move to main branch 5 жил өмнө
aci d0a3fb9844 Allow consistent multi container restart policies but provide clear error message for inconsistent restart policies 5 жил өмнө
backend ad72c866cc Add license headers 5 жил өмнө
cli 00f17534a3 error check 5 жил өмнө
client ad72c866cc Add license headers 5 жил өмнө
compose e097d19d7c update param name and add comments for logs and ps methods 5 жил өмнө
config e7e2d20050 config: Move to gotest.tools 5 жил өмнө
containers f442eafe0b Validate run restart option value. Default value is “none”, instead of “no”, this is more in line with compose values, and changes only the default so should not have too much impact on legacy usage. 5 жил өмнө
context 207b57ba81 context: Move to gotest.tools 5 жил өмнө
docs f442eafe0b Validate run restart option value. Default value is “none”, instead of “no”, this is more in line with compose values, and changes only the default so should not have too much impact on legacy usage. 5 жил өмнө
ecs a2c2d6aa5d Add Restart Policy support when running single container 5 жил өмнө
errdefs 8e893fc5eb errdefs: Move to gotest.tools 5 жил өмнө
example e097d19d7c update param name and add comments for logs and ps methods 5 жил өмнө
formatter 3ba70a27c6 formatter,multierror,progress: Move to gotest.tools 5 жил өмнө
local ef2d304762 Allow non-interactive exec on ACI 5 жил өмнө
metrics f442eafe0b Validate run restart option value. Default value is “none”, instead of “no”, this is more in line with compose values, and changes only the default so should not have too much impact on legacy usage. 5 жил өмнө
multierror 3ba70a27c6 formatter,multierror,progress: Move to gotest.tools 5 жил өмнө
progress f442eafe0b Validate run restart option value. Default value is “none”, instead of “no”, this is more in line with compose values, and changes only the default so should not have too much impact on legacy usage. 5 жил өмнө
prompt 87245ef727 rename packages ( amazon to ecs and azure to aci ) 5 жил өмнө
protos bc920b2e54 Add restartPolicyCondition to gRPC protos (run & inspect) 5 жил өмнө
server bc920b2e54 Add restartPolicyCondition to gRPC protos (run & inspect) 5 жил өмнө
tests 4dd1918ac2 Improve test that was sometimes passing too quickly where it should fail 5 жил өмнө
utils f442eafe0b Validate run restart option value. Default value is “none”, instead of “no”, this is more in line with compose values, and changes only the default so should not have too much impact on legacy usage. 5 жил өмнө
.dockerignore 9097b1f750 Add .git to .dockerignore 5 жил өмнө
.gitattributes 93984f8c68 Removed test requiring linux containers 5 жил өмнө
.gitignore fcc7582826 Remove non-project path 5 жил өмнө
.golangci.yml 69f10fe80c Extract interface / types to allow unit tests / mock 5 жил өмнө
CHANGELOG.md d40acb3146 Changelog updates 5 жил өмнө
Dockerfile 5ea711b586 dockerfile: Fix copyright 5 жил өмнө
Makefile 2471e51b39 set build tag for the ecs context and backend 5 жил өмнө
README.md c26b5ffd97 repo: Move to main branch 5 жил өмнө
builder.Makefile 539464ed3d build: Set version when building with Docker 5 жил өмнө
go.mod 4360cf67ce build(deps): bump github.com/Azure/go-autorest/autorest/adal 5 жил өмнө
go.sum 4360cf67ce build(deps): bump github.com/Azure/go-autorest/autorest/adal 5 жил өмнө

README.md

Docker API

Actions Status

Dev Setup

The recommended way is to use the main Makefile that runs everything inside a container.

If you don't have or want to use Docker for building you need to make sure you have all the needed tools installed locally:

And then you can call the same make targets but you need to pass it the builder.Makefile (make -f builder.Makefile).

The new CLI delegates to the classic docker for default contexts ; delegation is done to com.docker.cli.

  • make moby-cli-link will create a com.docker.cli link in /usr/local/bin if you don't already have it from Docker Desktop

Building the project

$ make

This will make the cli with all backends enabled. make cross on the other hand will cross-compile the cli without the example and local backend. We use make cross to build for our release, hence the exclusion of those backends. You can still cross-compile with all backends enabled: BUILD_TAGS=example,local make cross.

If you make changes to the .proto files, make sure to make protos to generate go code.

Tests

Unit tests

make test

If you need to update a golden file simply do go test ./... -test.update-golden.

e2e tests

make e2e-local

This requires a local Docker Engine running

AZURE_TENANT_ID="xxx" AZURE_CLIENT_ID="yyy" AZURE_CLIENT_SECRET="yyy" make e2e-aci

This requires azure service principal credentials to login to azure. To get the values to be set in local environment variables, you can create a new service principal once you're logged in azure (with docker login azure)

az ad sp create-for-rbac --name 'MyTestServicePrincipal' --sdk-auth

Running the ACI e2e tests will override your local login, the service principal credentials use a token that cannot be refreshed automatically. You might need to run again docker login azure to properly use the command line after running ACI e2e tests.

You can also run a single ACI test from the test suite:

TESTIFY=TestACIRunSingleContainer AZURE_TENANT_ID="xxx" AZURE_CLIENT_ID="yyy" AZURE_CLIENT_SECRET="yyy" make e2e-aci

Release

To create a new release:

  • check that the CI is green on the main branch's commit you want to release
  • simply create a new tag of the form vx.y.z, following existing tags, and push the tag

Pushing the tag will automatically create a new release and make binaries (mac, win, linux) available for download.

Note: Linux binaries are not automatically copied to /docker/aci-integration-beta, if you want to make the linux binary publicly available, you'll need to manually create a release in aci-integration-beta and upload the binary. For Desktop integration, you need to make a PR in /docker/pinata and update the cli release number here