Si je tape les commandes suivantes dans boot2docker comme indiqué sur le site Web de docker:
curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Lorsque je tape les commandes suivantes pour vérifier si l'installation a réussi, je reçois:
/usr/local/bin/docker-compose: line 1: syntax error: unexpected newline
Alors, comment puis-je installer docker-compose sur boot2docker?
Mise à jour du 7 novembre 2018:
Sur les systèmes de bureau tels que Docker pour Mac et Windows, Docker Compose est inclus dans le cadre de ces installations de bureau.
Selon la documentation , Docker pour Windows et Docker Toolbox inclut déjà Compose avec d'autres applications Docker, de sorte que la plupart des utilisateurs Windows n'ont pas besoin d'installer Compose séparément.
Mise à jour 2017: ceci est maintenant officiellement géré (pour Windows 10 prenant en charge Hyper-V) avec "Docker pour Windows" .
Voir " Installer Docker pour Windows ".
Il a une installation chocolatéepackage pour Docker , donc:
choco install docker-for-windows
# or
choco upgrade docker-for-windows
Là encore, cela nécessite Windows 10 Pro, Entreprise et Éducation 64 bits (mise à jour 1511 novembre, version 10586 ou ultérieure) et Microsoft Hyper-V.
Pour les autres Windows, vous avez toujours besoin de VirtualBox + Boot2Docker.
Mise à jour: docker compose 1.5 (nov 2015) devrait le rendre officiellement disponible pour Windows (depuis RC2).
Des requêtes telles que PR 22 et PR 214 ont été utiles.
Commit 13d5efc détaille le processus de construction officiel du binaire Windows.
Réponse originale (Q1-T3 2015).
Attention: la réponse originale ("docker-compose
dans un conteneur ") ci-dessous semble avoir un bogue, selon Ed Morley (edmorley
) .
Il semble y avoir des problèmes de mise en cache avec la méthode "docker-compose dans un conteneur" (voir problème n ° 6: "Les modifications apportées à docker-compose.yml et le fichier de docker non détecté" )
En tant que tel pour l'instant, lancer le Python
docker-compose
package à l'intérieur deboot2docker
semble être la solution la plus fiable pour les utilisateurs Windows (après avoir passé de nombreuses heures à essayer de se battre avec les alternatives) .Pour installer docker-compose à partir de PyPI, lancez-le à l’intérieur de
boot2docker
:
docker@boot2docker:~$
tce-load -wi python && curl https://bootstrap.pypa.io/get-pip.py | \
Sudo python - && Sudo pip install -U docker-compose
Pour éviter de devoir exécuter ce qui précède à chaque fois, le
boot2docker
VM est redémarré (les modifications ne persistent pas), vous pouvez utiliserbootlocal.sh
ainsi:
docker@boot2docker:~$
echo 'su docker -c "tce-load -wi python" && \
curl https://bootstrap.pypa.io/get-pip.py | \
python - && pip install -U docker-compose' | \
Sudo tee /var/lib/boot2docker/bootlocal.sh > /dev/null && \
Sudo chmod +x /var/lib/boot2docker/bootlocal.sh
(Le
su docker -c
_ la gymnastique est obligatoire depuistce-load
ne peut pas être exécuté en tant queroot
, etbootlocal.sh
est exécuté en tant queroot
. Lechmod
debootlocal.sh
devrait être inutile une fois # 915 est corrigé.
Ajouter-a
à la commandetee
si vous avez besoin d’ajouter, plutôt que d’écraserbootlocal.sh
.)Si vous souhaitez utiliser une version préliminaire de docker-compose, remplacez
pip install -U docker-compose
avecpip install -U docker-compose>=1.3.0rc1
ou équivalent.
Réponse originale:
Je cours aussi docker-compose
(sous Windows boot2docker) dans une image par:
/c/Users/<username>/myproject/compose
(pour avoir de la persistance, puisque /c/Users/<username>
est monté automatiquement, lorsque j'utilise VirtualBox avec son extension pack )construire l'image docker-composer:
cd /c/Users/<username>/myproject/compose
# that will put the repo in a detached HEAD, but it does not matter here
git checkout 1.2.0
docker build -t docker-compose .
ajout d’un alias 'dc
' (dans un fichier profile
que je copie sur mon /home/docker/.ashrc
avant lancement de la session ssh de boot2docker .)
dc='docker run --rm -i -t -v /var/run/docker.sock:/var/run/docker.sock -v `pwd`:`pwd` -w `pwd` docker-compose'
De là, un 'dc up
' ou 'dc ps
'fonctionne juste. Sous Windows. Avec boot2docker 1.6.
Il existe une solution supplémentaire consistant à exécuter docker-compose sous Windows avec Babun (un port célèbre de Cygwin Shell avec toutes sortes d’améliorations, y compris un gestionnaire de paquets).
Voici comment:
1.) Installez Babun 2.) Ouvrez-le et installez les dépendances requises pour Python et Pip:
pact install python-setuptools
pact install libxml2-devel libxslt-devel libyaml-devel
curl -skS https://bootstrap.pypa.io/get-pip.py | python
pip install virtualenv
curl -skS https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get-pipsi.py | python
3.) Enfin courir
pip install -U docker-compose
La solution n'est pas la mienne, prise d'ici: http://habrahabr.ru/post/260329/
J'ai une forte opinion, que docker-compose doit être installé sur un hôte, pas sur une machine virtuelle boot2docker, vous n'avez donc pas besoin de ssh tout le temps.
Vous pouvez installer docker-compose sur Windows avec pip:
pip install -U docker-compose
Il semble qu'ils n'aient pas encore ajouté de support natif à la version Windows de Boot2Docker.
Donc, pour le moment, vous pouvez utiliser docker-compose comme vous l'avez déjà fait avec fig: exécutez-le comme conteneur docker .
boot2docker
versions> = 1.7.0
avoir un espace utilisateur de 64 bits . Cela signifie que les binaires pré-construits de leur référentiel github fonctionnent immédiatement.
J'ai utilisé les informations contenues dans réponse de VonC ci-dessus pour écrire un script qui télécharge la dernière version (ou une version spécifique, voir la partie commentée dans le code) et le persiste. Il ne téléchargera le fichier qu'une fois, mais le mettra sur le chemin à chaque démarrage de boot2docker
.
boot2docker ssh
depuis n'importe quel terminal.exit
puis exécutez boot2docker restart && boot2docker ssh
docker-compose
pour voir qu'il répond avec sa liste de commandes.Sous Windows, le boot2docker restart
_ commande a tendance à échouer la première fois. Mais c'est juste pour relancer cette commande.
echo 'if [ ! -f /var/lib/boot2docker/etc/docker-compose-`uname -s`-`uname -m` ]; then
echo "Download docker-compose..."
# Download latest version
curl -L https://github.com/docker/compose/releases/download/$(curl -s -L https://github.com/docker/compose/releases/latest | \
grep -Eo -m 1 docker/compose/releases/tag/\([0-9.]*\) | \
grep -o [0-9.]*)/docker-compose-`uname -s`-`uname -m` \
> /var/lib/boot2docker/etc/docker-compose-`uname -s`-`uname -m`
# Download fixed version
# curl -L https://github.com/docker/compose/releases/download/1.3.1/docker-compose-`uname -s`-`uname -m` \
# > /var/lib/boot2docker/etc/docker-compose-`uname -s`-`uname -m`
echo "Done!"
fi
echo "Install docker-compose on path..."
cp /var/lib/boot2docker/etc/docker-compose-`uname -s`-`uname -m` /usr/local/bin/docker-compose &&
chmod +x /usr/local/bin/docker-compose
echo "Done!"
' | Sudo tee /var/lib/boot2docker/bootlocal.sh > /dev/null && \
Sudo chmod +x /var/lib/boot2docker/bootlocal.sh
J'ai eu du succès après ce numéro sur github
after pip ... lancez cette commande pour installer docker-compose:
`pip install git+git://github.com/docker/compose.git`
Ne pas croire? regardez cette preuve
Les choses ont progressé et dernièrement, j'ai eu le plus de succès avec la méthode suivante, qui vous permet de l'exécuter de manière native sous Windows, en utilisant Docker.
Tout d’abord, vous voudrez installer Docker CLI pour Windows:
curl -L https://get.docker.com/builds/Windows/x86_64/docker-latest.exe > /usr/bin/docker
chmod +x /usr/bin/docker
Ensuite, construisez l’image docker-compose à partir du référentiel Github:
docker build -t docker-compose github.com/docker/compose
Ensuite, configurez simplement un alias pour exécuter le conteneur:
alias docker-compose='docker run --rm -ti -v /var/run/docker.sock:/var/run/docker.sock -v `pwd`:`pwd` -w `pwd` docker-compose'
Je l'utilise depuis un moment et je n'ai rencontré aucun problème - la fonctionnalité correspond exactement à ce à quoi vous vous attendiez, comme si vous utilisiez le binaire en natif, vous devez simplement vous assurer que vos dossiers partagés sont correctement mappés dans le répertoire. B2D/VM Docker-Machine. Je trouve plus facile de mettre en miroir les chemins dans VM tels qu'ils se trouvent sur l'hôte, de sorte que mon fichier docker-compose.yml ne soit pas aussi déroutant.
Le moyen le plus simple d’installer Docker Compose (et Docker) sous Windows consiste à utiliser le package chocolatey (gestionnaire de paquets pour Windows) docker-compose , qui doit être installé après le paquet docker . Cela vous évitera de nombreux obstacles lors de l'installation manuelle et vous permettra de mettre à jour votre installation facilement.
Si vous n’êtes pas familier avec Chocolatey, simplement installez-le - par exemple. sur une ligne de commande administrative avec:
@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
Maintenant que Chocolatey est installé, il ne reste plus qu’à allumer un Powershell administratif et à faire:
choco install docker
choco install docker-compose
En clair: vous n’avez plus besoin de Boot2Docker pour exécuter Docker sous Windows - Windows supporte nativement Docker pendant un certain temps maintenant. Donc plus besoin de ça.
https://github.com/docker/compose/releases/tag/1.5.0rc "La composition est maintenant disponible pour Windows."
C’est là ma solution idéale pour installer Compose à l’intérieur de boot2docker
. Si quelqu'un souhaite prendre en compte la suggestion de VonC de lancer Compose contre l'hôte Docker de son hôte depuis un conteneur, j'ai créé un compagnon conteneur du développeur qui suit les instructions de Compose et qui est facile à installer et à exécuter.
Si vous avez un environnement de type Bourne Shell sous Windows, vous pouvez simplement exécuter:
curl -L https://git.io/vuEqk -o /usr/local/bin/room
chmod +x /usr/local/bin/room
Vous pouvez démarrer un conteneur sur n'importe quel chemin et le prendre à partir de là en exécutant simplement:
room
Vous pouvez éventuellement passer des arguments de commande. Ainsi, si vous vous trouvez dans un répertoire de travail contenant un fichier de configuration Compose, cela suffira pour que tout soit opérationnel:
room docker-compose up
Si vous manquez un environnement Shell favorable, l’installation d’une des distributions Git pour Windows incluant l’invite Git Bash suffirait ou vous pouvez directement utiliser les invites de l’un des deux MinGW ou Cygwin . Sinon, vous pouvez toujours SSH sur votre Docker Machine et l’installer là-bas.