The Docker CLI
Go to file
Sebastiaan van Stijn 9e424af5da
e2e: update to use compose v2, and don't depend on distro-packages
We were depending on alpine's package repository to install compose,
but for debian we used compose's GitHub releases. Depending on distro
packages means that we don't know when updates will happen, and versions
may diverge because of that; for example, alpine 3.18 updated to compose
v2;

On alpine 3.17:

    make -f docker.Makefile build-e2e-image
    docker run --rm docker-cli-e2e docker-compose --version
    docker-compose version 1.29.2, build unknown

On alpine 3.18:

    make -f docker.Makefile build-e2e-image
    docker run --rm docker-cli-e2e docker-compose --version
    Docker Compose version v2.17.3

This caused our e2e script to fail, as it made assumptions about the name
format created by compose, which changed from underscores to hyphens in v2;

    Container cliendtoendsuite-engine-1  Running
    Error: No such object: cliendtoendsuite_engine_1

This patch:

- updates the Dockerfile to install compose from the compose-bin image
- adjusts the e2e script for the new naming scheme format
- removes the version field from the compose-files used in e2e, as they
  are no longer used by compose.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-09-26 12:20:01 +02:00
.circleci dummy circleci config 2022-02-25 21:15:39 +01:00
.github Merge pull request #4557 from thaJeztah/update_golang_1.20.8 2023-09-13 09:15:18 -06:00
cli vendor: github.com/docker/docker d3afa80b96bf (v25.0.0-dev) 2023-09-21 15:30:51 +02:00
cli-plugins cli: SetupRootCommand: remove redundant flags return 2023-06-28 16:26:50 +02:00
cmd/docker cmd/docker: areFlagsSupported: don't Ping if not needed 2023-08-22 09:34:09 +02:00
contrib/completion Stop slowing bash init by caching plugins path slowly 2023-08-23 13:40:29 +03:00
dockerfiles Merge pull request #4539 from thaJeztah/bump_golangci_lint 2023-09-13 10:05:25 -06:00
docs docs: fix duplicate words in "docker tag" reference 2023-09-14 13:44:39 +02:00
e2e e2e: update to use compose v2, and don't depend on distro-packages 2023-09-26 12:20:01 +02:00
experimental experimental: fix broken link to "checkpoint and restore" page 2021-09-07 13:30:48 +02:00
internal/test e2e: Skip tests with platform-specific digests on other platforms 2023-04-27 10:57:56 +02:00
man Fix extremely minor typo in docker-run man page 2023-09-07 21:11:13 -07:00
opts Add missing opts to --network advanced syntax 2023-09-10 18:57:50 +02:00
scripts e2e: update to use compose v2, and don't depend on distro-packages 2023-09-26 12:20:01 +02:00
service/logs service/logs: use strings.Cut 2022-12-29 15:19:31 +01:00
templates staticcheck: ignore SA1019: strings.Title is deprecated 2022-03-28 17:23:06 +02:00
vendor vendor: github.com/docker/docker d3afa80b96bf (v25.0.0-dev) 2023-09-21 15:30:51 +02:00
.dockerignore validate manpages target 2022-02-25 17:11:17 +01:00
.gitattributes fix linguist with .gitattributes 2021-12-16 21:16:02 +01:00
.gitignore validate manpages target 2022-02-25 17:11:17 +01:00
.golangci.yml update golangci-lint to v1.54.2 2023-08-29 14:21:47 +02:00
.mailmap Update mailmap and AUTHORS 2022-12-01 10:04:48 +01:00
AUTHORS Update AUTHORS header to indicate it's generated 2022-12-01 10:05:22 +01:00
CONTRIBUTING.md CONTRIBUTING.md: update links 2023-08-25 14:09:07 +02:00
Dockerfile e2e: update to use compose v2, and don't depend on distro-packages 2023-09-26 12:20:01 +02:00
LICENSE Add project files 2017-04-17 17:49:33 -04:00
MAINTAINERS MAINTAINERS: add myself as curator 2023-02-07 10:13:53 -07:00
Makefile docs: generate markdown 2023-01-06 22:36:47 +01:00
NOTICE switch kr/pty to creack/pty v1.1.7 2019-07-29 16:45:41 -07:00
README.md README: fix badges 2023-01-13 19:18:26 +01:00
TESTING.md tweak description of login/logout 2022-04-04 10:44:11 +02:00
VERSION Update version to v25.0.0-dev 2023-05-08 08:57:19 +02:00
codecov.yml Drop support for (archived) Compose-on-Kubernetes 2022-02-22 13:47:34 +01:00
docker-bake.hcl update to go1.20.8 2023-09-11 15:49:14 +02:00
docker.Makefile docs: generate markdown 2023-01-06 22:36:47 +01:00
vendor.mod vendor: github.com/docker/docker d3afa80b96bf (v25.0.0-dev) 2023-09-21 15:30:51 +02:00
vendor.sum vendor: github.com/docker/docker d3afa80b96bf (v25.0.0-dev) 2023-09-21 15:30:51 +02:00

README.md

Docker CLI

PkgGoDev Build Status Test Status Go Report Card Codecov

About

This repository is the home of the cli used in the Docker CE and Docker EE products.

Development

docker/cli is developed using Docker.

Build CLI from source:

docker buildx bake

Build binaries for all supported platforms:

docker buildx bake cross

Build for a specific platform:

docker buildx bake --set binary.platform=linux/arm64 

Build dynamic binary for glibc or musl:

USE_GLIBC=1 docker buildx bake dynbinary 

Run all linting:

docker buildx bake lint shellcheck

Run test:

docker buildx bake test

List all the available targets:

make help

In-container development environment

Start an interactive development environment:

make -f docker.Makefile shell

Brought to you courtesy of our legal counsel. For more context, please see the NOTICE document in this repo.

Use and transfer of Docker may be subject to certain restrictions by the United States and other governments.

It is your responsibility to ensure that your use and/or transfer does not violate applicable laws.

For more information, please see https://www.bis.doc.gov

Licensing

docker/cli is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.