web-dev-qa-db-fra.com

sudo: docker-compose: commande introuvable

J'essaie de composer docker en utilisant Sudo.

J'ai docker et docker-compose installés sur Ubuntu 16.01.

En raison d'une erreur lors de la tentative de téléchargement de compos à l'aide de curl, j'ai fini par l'installer à l'aide de pip.

Docker version 1.12.0, version 8eab29e Docker-compose version 1.8.0, version 94f7016

Cependant, lorsque j'essaie d'exécuter docker-compose avec Sudo, je reçois le message suivant (utiliser Sudo avec docker, c'est bien)

Sudo: docker-compose: command not found

Je suppose qu'il existe différentes définitions de ce que «installé» signifie. J'utilise Docker-Compose sur le même ordinateur qui déclare ne pas l'avoir installé.

$ dpkg -s docker-compose
dpkg-query: package 'docker-compose' is not installed and no information is available
Use dpkg --info (= dpkg-deb --info) to examine archive files,
and dpkg --contents (= dpkg-deb --contents) to list their contents.


$ whereis docker-compose
docker-compose: /home/user/.local/bin/docker-compose

$ pip show --files docker-compose
---
Metadata-Version: 2.0
Name: docker-compose
Version: 1.8.0
Summary: Multi-container orchestration for Docker
Home-page: https://www.docker.com/
Author: Docker, Inc.
Author-email: UNKNOWN
Installer: pip
License: Apache License 2.0
Location: /home/anton/.local/lib/python2.7/site-packages
Requires: six, jsonschema, enum34, cached-property, websocket-client, docker-py, requests, docopt, dockerpty, PyYAML, texttable
Classifiers:
  Development Status :: 5 - Production/Stable
  Environment :: Console
  Intended Audience :: Developers
  License :: OSI Approved :: Apache Software License
  Programming Language :: Python :: 2
  Programming Language :: Python :: 2.7
  Programming Language :: Python :: 3
  Programming Language :: Python :: 3.4
Files:
  ../../../bin/docker-compose
  compose/GITSHA
  compose/__init__.py
  compose/__init__.pyc
  compose/__main__.py
  compose/__main__.pyc
  compose/bundle.py
  compose/bundle.pyc
  compose/cli/__init__.py
  compose/cli/__init__.pyc
  compose/cli/colors.py
  compose/cli/colors.pyc
  compose/cli/command.py
  compose/cli/command.pyc
  compose/cli/docker_client.py
  compose/cli/docker_client.pyc
  compose/cli/docopt_command.py
  compose/cli/docopt_command.pyc
  compose/cli/errors.py
  compose/cli/errors.pyc
  compose/cli/formatter.py
  compose/cli/formatter.pyc
  compose/cli/log_printer.py
  compose/cli/log_printer.pyc
  compose/cli/main.py
  compose/cli/main.pyc
  compose/cli/signals.py
  compose/cli/signals.pyc
  compose/cli/utils.py
  compose/cli/utils.pyc
  compose/cli/verbose_proxy.py
  compose/cli/verbose_proxy.pyc
  compose/config/__init__.py
  compose/config/__init__.pyc
  compose/config/config.py
  compose/config/config.pyc
  compose/config/config_schema_v1.json
  compose/config/config_schema_v2.0.json
  compose/config/environment.py
  compose/config/environment.pyc
  compose/config/errors.py
  compose/config/errors.pyc
  compose/config/interpolation.py
  compose/config/interpolation.pyc
  compose/config/serialize.py
  compose/config/serialize.pyc
  compose/config/sort_services.py
  compose/config/sort_services.pyc
  compose/config/types.py
  compose/config/types.pyc
  compose/config/validation.py
  compose/config/validation.pyc
  compose/const.py
  compose/const.pyc
  compose/container.py
  compose/container.pyc
  compose/errors.py
  compose/errors.pyc
  compose/network.py
  compose/network.pyc
  compose/parallel.py
  compose/parallel.pyc
  compose/progress_stream.py
  compose/progress_stream.pyc
  compose/project.py
  compose/project.pyc
  compose/service.py
  compose/service.pyc
  compose/state.py
  compose/state.pyc
  compose/utils.py
  compose/utils.pyc
  compose/volume.py
  compose/volume.pyc
  docker_compose-1.8.0.dist-info/DESCRIPTION.rst
  docker_compose-1.8.0.dist-info/INSTALLER
  docker_compose-1.8.0.dist-info/METADATA
  docker_compose-1.8.0.dist-info/RECORD
  docker_compose-1.8.0.dist-info/WHEEL
  docker_compose-1.8.0.dist-info/entry_points.txt
  docker_compose-1.8.0.dist-info/metadata.json
  docker_compose-1.8.0.dist-info/pbr.json
  docker_compose-1.8.0.dist-info/top_level.txt
Entry-points:
  [console_scripts]
  docker-compose=compose.cli.main:main

J'ai essayé ce qui suit - mais j'obtiens toujours la même erreur:

$ chmod +x /home/username/.local/bin/docker-compose
$ chmod +x /home/anton/.local/lib/python2.7/site-packages
26
Magick

La sortie de dpkg -s ... montre que docker-compose n'est pas installé à partir d'un package. Sans plus d'informations de votre part, il existe au moins deux possibilités:

  1. docker-compose n'est tout simplement pas installé du tout et vous devez l'installer.

    La solution ici est simple: installez docker-compose.

  2. docker-compose est installé dans votre répertoire $HOME (ou à un autre emplacement que le $PATH de la racine).

    Il y a plusieurs solutions dans ce cas. Le plus simple est probablement de remplacer:

    Sudo docker-compose ...
    

    Avec:

    Sudo `which docker-compose` ...
    

    Ceci appellera Sudo avec le chemin complet à docker-compose.

    Vous pouvez également installer docker-compose dans un répertoire système, tel que /usr/local/bin.

18
larsks

Si vous avez essayé d'installer via la page officielle docker-compos, où vous devez télécharger le binaire avec curl:

curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

Alors n'oubliez pas d'ajouter l'indicateur de l'exécutable au binaire:

chmod +x /usr/local/bin/docker-compose

Si docker-compose est installé à l'aide de python-pip

Sudo apt-get -y install python-pip
Sudo pip install docker-compose

essayez d'utiliser pip show --files docker-compose pour voir où il est installé.

Si docker-compose est installé dans le chemin utilisateur, essayez:

Sudo "PATH=$PATH" docker-compose

Comme je le vois dans votre message mis à jour, docker-compose est installé dans le chemin d’utilisateur /home/user/.local/bin et si ce chemin ne se trouve pas dans votre chemin local $PATH, essayez alors:

Sudo "PATH=$PATH:/home/user/.local/bin" docker-compose
11
VanagaS

Je vais laisser cela ici comme une solution possible, travaillé pour moi au moins et pourrait aider les autres. Je suis sûr que ce ne serait qu'une solution à Linux.

J'ai décidé de ne pas utiliser le pip install ni la version github (première option du guide d'installation).

Au lieu de placer le répertoire copié docker-compose dans/usr/local/bin/docker-compose à partir de la commande curl/github, je suis allé avec/usr/bin/docker-compose, qui est l'emplacement de Docker lui-même et forcera le programme courir en racine. Donc cela fonctionne dans root et Sudo mais ne fonctionnera pas maintenant sans Sudo, donc effet opposé qui est ce que vous voulez exécuter en tant qu'utilisateur. 

4
envymike

J'ai le même problème, j'ai résolu le problème: 

étape 1: téléchargez docker-compose en utilisant la commande suivante.

     1.  Sudo su

     2. Sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

Étape 2: commande Exécuter

    chmod +x /usr/local/bin/docker-compose

Étape 3: Vérifier la version de docker-compose

     docker-compose --version
3
Mayur Kothari

Ou bien, ajoutez simplement votre chemin binaire dans le chemin. À la fin du cycle:

... 
export PATH=$PATH:/home/user/.local/bin/

sauvegarder le fichier et lancer:

source .bashrc

et la commande fonctionnera.

0
Brivaldo Junior