docker / app

Make your Docker Compose applications reusable, and share them on Docker Hub
Apache License 2.0
1.57k stars 176 forks source link

how to install as docker plugin #666

Closed vlcinsky closed 4 years ago

vlcinsky commented 4 years ago

Description

Trying to install docker-app as docker plugin, I failed to find working instructions.

Steps to reproduce the issue:

  1. Read installation instructions for docker-app regarding docker plugin installation
  2. Check official docker plugin installation instructions: https://docs.docker.com/engine/reference/commandline/plugin_install/

Describe the results you received: Instructions are confusing. While docker-app offers brief instructions, I ended up with docker-app in ~/.docker/cli-plugins directory without any effect as the official instruction assume, plugin will be referenced via some docker image.

Describe the results you expected: Find working instructions to install docker-app as docker plugin. Either:

Output of docker version:

$ docker version
Client: Docker Engine - Community
 Version:           19.03.2
 API version:       1.40
 Go version:        go1.12.8
 Git commit:        6a30dfc
 Built:             Thu Aug 29 05:29:29 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.2
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.8
  Git commit:       6a30dfc
  Built:            Thu Aug 29 05:28:05 2019
  OS/Arch:          linux/amd64
  Experimental:     true
 containerd:
  Version:          1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

Output of docker app version:

$ docker-app version
Version:               v0.8.0
Git commit:            7eea32b7
Built:                 Tue Jun 11 20:53:26 2019
OS/Arch:               linux/amd64
Experimental:          off
Renderers:             none
Invocation Base Image: docker/cnab-app-base:v0.8.0

Output of docker info:

Client:
 Debug Mode: false

Server:
 Containers: 3
  Running: 0
  Paused: 0
  Stopped: 3
 Images: 82
 Server Version: 19.03.2
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: active
  NodeID: 9ldadcagi49p3no4mz3hkmd2p
  Is Manager: true
  ClusterID: exugxkiggrvovb5vn4tylqvbf
  Managers: 1
  Nodes: 1
  Default Address Pool: 10.0.0.0/8  
  SubnetSize: 24
  Data Path Port: 4789
  Orchestration:
   Task History Retention Limit: 5
  Raft:
   Snapshot Interval: 10000
   Number of Old Snapshots to Retain: 0
   Heartbeat Tick: 1
   Election Tick: 10
  Dispatcher:
   Heartbeat Period: 5 seconds
  CA Configuration:
   Expiry Duration: 3 months
   Force Rotate: 0
  Autolock Managers: false
  Root Rotation In Progress: false
  Node Address: 10.0.7.115
  Manager Addresses:
   10.0.7.115:2377
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc version: 425e105d5a03fabd737a126ad93d62a9eeede87f
 init version: fec3683
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 4.19.0-6-amd64
 Operating System: Debian GNU/Linux 10 (buster)
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 15.1GiB
 Name: T810
 ID: AATV:4ARO:FHSH:FQ25:XSQT:AWEO:PTID:GB6V:JRH2:5GRA:JCJQ:R2O6
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: true
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
ndeloof commented 4 years ago

Hi.

I fully understand your confusion here https://docs.docker.com/engine/reference/commandline/plugin_install/ is about the docker plugin install command, which is designed to manage command line plugins (installation, enablement, etc) based on a docker image packaging of such plugins.

Docker app isn't distributed in this format (yet) so can't be installed by such a command. You have to download binary releases and manually install under .docker/cli-plugins. Please also note the whole support for CLI plugins is experimental, and as such won't be effective until you set DOCKER_CLI_EXPERIMENTAL=enabled.

I'll look into updating the docs

ndeloof commented 4 years ago

What do you think about : https://github.com/docker/app/pull/667/files?file-filters%5B%5D=.Makefile&file-filters%5B%5D=.go&file-filters%5B%5D=.mk&file-filters%5B%5D=.yml&file-filters%5B%5D=No+extension#diff-04c6e90faac2675aa89e2176d2eec7d8

vlcinsky commented 4 years ago

@ndeloof nice. Proposed text is good, it identifies the engine/cli plugin confusion and provides instructions to enable experimental for cli.

For me it works.

The only sentence which I think shall be changed is:

Note: This requires a pre-release version of the Docker CLI

on line 248

My docker client reports 19.0.3, which does not seem to be pre-release, so the note seems to be obsolete.

ndeloof commented 4 years ago

yes indeed, I missed this one. Thanks for reporting this usability issue.