docker-composition de l'ajout de CHEMIN
Je besoin d'ajouter que certains chemins de mon CHEMIN, docker-composer.yml
dans docker-composer.yml, j'ai essayé
app:
...
environment:
- PATH /code/project
cependant que juste remplace le CHEMIN d'accès existant - alors que je veux ajouter le CHEMIN d'accès existant
OriginalL'auteur lukeaus | 2016-01-08
Vous devez vous connecter pour publier un commentaire.
Un
docker-compose.yml
ne pas vous offrir tous les moyens de prolonger une variable d'environnement qui serait déjà ensemble dans un menu fixe de l'image.Le seul moyen que je vois pour faire de telles choses est d'avoir un menu fixe de l'image qui s'attend à une certaine variable d'environnement (disons
ADDITONAL_PATH
) et s'étend au moment de l'exécution son proprePATH
variable d'environnement.Prenons le suivant Dockerfile:
et suivants docker-composer.yml fichier (dans le même répertoire que le Dockerfile):
Construire l'image:
docker-compose build
Et démarrer un conteneur:
docker-compose up
, vous obtiendrez le résultat suivant:Maintenant modifier la docker-composer.yml fichier:
Et démarrer un conteneur:
docker-compose up
, vous obtiendrez alors la sortie suivante:Également noter une erreur de syntaxe dans votre docker-composer.yml fichier: il doit y avoir un signe égal (
=
) entre le nom de la variable et sa valeur.au lieu de
Dockerfile
: `ENV="/mon/new/chemin"${PATH}". Notez que les guillemets sont importants. Je recommande d'ajouter ceci à votre réponse. Voir ce post.OriginalL'auteur Thomasleveil
@Thomasleveil réponse ne fonctionne que pour les conteneurs construit directement à partir du menu fixe-composition de fichier (via le
build
). Et vous n'avez aucun contrôle sur la commande exécutée.J'avais besoin de cette fonctionnalité pour les conteneurs téléchargé à partir de (notre) référentiel dans lequel cela ne fonctionne pas très bien.
J'ai trouvé la solution à l'aide de la
entrypoint
etcommand
.Permet d'avoir certains conteneur de base de
base
et un autre,java7
, qui est basé sur elle. Et, enfin, certains docker-composer à l'aide de lajava7
conteneur pour exécuter certaines choses.Sans doute le dossier le plus important ici,
entrypoint.sh
Dockerfile pour
base
conteneurDockerfile pour
java7
conteneurCommandes exécutées par docker-composer
Docker-composer à l'aide de ces:
Structure du fichier
OriginalL'auteur Petr Újezdský
pour ajouter un seul emplacement de CHEMIN d'accès dans votre menu fixe-composer.fichier yml:
pour ajouter plusieurs endroits de votre CHEMIN dans votre menu fixe-composer.fichier yml
à ajouter à votre PYTHONPATH
êtes-vous sûr que le
PATH
valeur n'était pas le même sur les deux votre menu fixe système hôte et votre panneau de l'image, comme une coïncidence?Je suis désolé, je maintiens qu'il ne fonctionne pas, reportez-vous à résumé, à l'aide de docker-composer v1.5.2 sur CentOS 6.7
Il pourrait ne pas fonctionner en théorie, mais cela fonctionne pour moi.
est correcte. C'est tout simplement à l'aide de la valeur de l'hôte sur lequel vous êtes en cours d'exécution
docker-compose
. Le fait que le mêmePATH
existe dans le conteneur, ne veut pas dire "ça marche", dans le sens que l'OP décrit. Essayez d'ajouter des valeurs àPATH
dans votre hôte shell, puis exécutezdocker-compose
. Vous verrez qu'ils apparaissent dans le conteneurPATH
. Ensuite, essayez d'effacerPATH
dans votre hôte de la coquille, et vous verrez qu'il n'est plus "œuvres". En outre, l'utilisationenv_file
à faire, ce sera tout simplement l'interpréter$PATH
comme une chaîne littérale.OriginalL'auteur lukeaus