No Description

Guillaume Tardif a2ea2347ba Remove It() in e2e tests, simplified step declaration. Nicer test output for all tests 5 years ago
.dependabot 9c21e09044 Run dependabot daily instead of weekly 5 years ago
.github 878783d271 tools: Update Go and linter 5 years ago
azure 42a756f7d3 azure: Clean up volume parsing functions 5 years ago
backend ad72c866cc Add license headers 5 years ago
cli c5cd0f44f8 Fix ACI e2e tests : do not use console if no tty option set in exec 5 years ago
client ad72c866cc Add license headers 5 years ago
compose 622402709a Use compose-go's Project and ProjectOptions 5 years ago
config ad72c866cc Add license headers 5 years ago
containers cb3ac513cc Add run env variables support (KEY=AVLUE or KEY, will grab the process env value). 5 years ago
context 839b1b0b44 Delegate to Moby CLI, to allow executing ecs CLI plugin if user has switched to the AWS context (created by the plugin) 5 years ago
docs 6e6ed0648f docs: Add Linux install instructions 5 years ago
errdefs 964e331a10 Specific exit code when command fails because azure login is required. Will be used by VSCode Docker integration 5 years ago
example 7296290408 Add ”Platform” in docker inspect result, showing container OS (this field is used by VSCode) 5 years ago
formatter 1deb2b8b09 Integrate limits on inspect 5 years ago
local 7296290408 Add ”Platform” in docker inspect result, showing container OS (this field is used by VSCode) 5 years ago
metrics 188dc1b06c Metrics for azure commands 5 years ago
multierror ad72c866cc Add license headers 5 years ago
progress 50d932195d progress: Rename variable to clarify logic 5 years ago
protos 1deb2b8b09 Integrate limits on inspect 5 years ago
server 37f4c36c32 Use logrus for logging, not containerd's log 5 years ago
tests a2ea2347ba Remove It() in e2e tests, simplified step declaration. Nicer test output for all tests 5 years ago
.dockerignore 9097b1f750 Add .git to .dockerignore 5 years ago
.gitattributes 93984f8c68 Removed test requiring linux containers 5 years ago
.gitignore fcc7582826 Remove non-project path 5 years ago
.golangci.yml 69f10fe80c Extract interface / types to allow unit tests / mock 5 years ago
CHANGELOG.md d40acb3146 Changelog updates 5 years ago
Dockerfile b881f16085 Merge pull request #364 from chris-crone/set-version-docker 5 years ago
Makefile 539464ed3d build: Set version when building with Docker 5 years ago
README.md fc8132167e Update doc for release 5 years ago
builder.Makefile 539464ed3d build: Set version when building with Docker 5 years ago
go.mod 2e867f40d7 Merge pull request #355 from docker/fix_windows_login 5 years ago
go.sum 2e867f40d7 Merge pull request #355 from docker/fix_windows_login 5 years ago

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 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.

Release

To create a new release:

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

Pushing the tag will automatically ceate 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 publically 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