Fără Descriere

Guillaume Tardif 69ce33321f Merge pull request #528 from docker/secrets 5 ani în urmă
.dependabot 9c21e09044 Run dependabot daily instead of weekly 5 ani în urmă
.github dc7df90115 Merge pull request #523 from docker/test_triggers 5 ani în urmă
aci dc1e313858 Revert "Debug for CI failing tests (green locally)" 5 ani în urmă
backend 44b2b8b21d integrate functionality from ecs-plugin 5 ani în urmă
cli 69ce33321f Merge pull request #528 from docker/secrets 5 ani în urmă
client 635ecd7b99 Return a default implementation when nil 5 ani în urmă
compose ec4615ae57 Apply linter recommendations 5 ani în urmă
config e7e2d20050 config: Move to gotest.tools 5 ani în urmă
containers 1a3182fb7f Implement `docker start` for ACI 5 ani în urmă
context 207b57ba81 context: Move to gotest.tools 5 ani în urmă
docs 95de770e87 Update or add license header which are not valid 5 ani în urmă
ecs 66e25937c6 Merge remote-tracking branch 'origin/main' into ecs-import 5 ani în urmă
errdefs 8e893fc5eb errdefs: Move to gotest.tools 5 ani în urmă
example 44b2b8b21d integrate functionality from ecs-plugin 5 ani în urmă
formatter 3ba70a27c6 formatter,multierror,progress: Move to gotest.tools 5 ani în urmă
local 6e6a11aa73 Introduce Secrets API 5 ani în urmă
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 ani în urmă
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 ani în urmă
prompt 95de770e87 Update or add license header which are not valid 5 ani în urmă
protos 33758f0764 Add start to gRPC 5 ani în urmă
scripts b4e45bf597 Add a script to check if go.mod and go.sum are up-to-date 5 ani în urmă
secrets ec4615ae57 Apply linter recommendations 5 ani în urmă
server 95de770e87 Update or add license header which are not valid 5 ani în urmă
tests 73f5f030ac Fix flakiness in ECS E2E : wait when reaching nginx welcome page, sometimes stack is not fully up and we get 503 errors 5 ani în urmă
utils 95de770e87 Update or add license header which are not valid 5 ani în urmă
.dockerignore 9097b1f750 Add .git to .dockerignore 5 ani în urmă
.gitattributes 93984f8c68 Removed test requiring linux containers 5 ani în urmă
.gitignore fcc7582826 Remove non-project path 5 ani în urmă
.golangci.yml 69f10fe80c Extract interface / types to allow unit tests / mock 5 ani în urmă
CHANGELOG.md d40acb3146 Changelog updates 5 ani în urmă
CONTRIBUTING.md 8cfcfc8645 Add issue template, Contributing guide and maintainers list 5 ani în urmă
Dockerfile b41d216aaa Add import restrictions check 5 ani în urmă
LICENSE d7d9bb28bb Add LICENSE and NOTICE files 5 ani în urmă
MAINTAINERS 8cfcfc8645 Add issue template, Contributing guide and maintainers list 5 ani în urmă
Makefile 3a83d85d7a First ECS E2E test 5 ani în urmă
NOTICE d7d9bb28bb Add LICENSE and NOTICE files 5 ani în urmă
README.md d49d4473c3 Allow running ECS E2E tests locally 5 ani în urmă
builder.Makefile b41d216aaa Add import restrictions check 5 ani în urmă
go.mod 48c8478f23 Revert "build(deps): bump github.com/awslabs/goformation/v4" 5 ani în urmă
go.sum 48c8478f23 Revert "build(deps): bump github.com/awslabs/goformation/v4" 5 ani în urmă
import-restrictions.yaml b41d216aaa Add import restrictions check 5 ani în urmă

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

Local ACI E2E tests:

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:

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

Local ECS E2E tests:

TEST_AWS_PROFILE=myProfile TEST_AWS_REGION=eu-west-3 make e2e-ecs

This requires a valid AWS profile defined in ~/.aws/credentials.

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