367 votes

Comment monter un répertoire hôte en tant que volume dans docker compose ?

J'ai un environnement de développement que je suis en train de dockeriser et j'aimerais avoir la possibilité de charger en direct mes modifications sans avoir à reconstruire les images docker. J'utilise docker compose parce que redis est l'une des dépendances de mon application et j'aime pouvoir relier un conteneur redis.

J'ai deux conteneurs définis dans mon docker-compose.yml :

node:
  build: ./node
  links:
    - redis
  ports:
    - "8080"
  env_file:
    - node-app.env

redis:
  image: redis
  ports:
    - "6379"

Je suis arrivé au point où dans mon node J'ai ajouté un volume dans le dockerfile de l'application, mais comment monter le répertoire de l'hôte dans le volume pour que toutes mes modifications du code soient reflétées dans le conteneur ?

Voici mon Dockerfile actuel :

# Set the base image to Ubuntu
FROM    node:boron

# File Author / Maintainer
MAINTAINER Amin Shah Gilani <amin@gilani.me>

# Install nodemon
RUN npm install -g nodemon

# Add a /app volume
VOLUME ["/app"]

# TODO: link the current . to /app

# Define working directory
WORKDIR /app

# Run npm install
RUN npm install

# Expose port
EXPOSE  8080

# Run app using nodemon
CMD ["nodemon", "/app/app.js"]

Mon projet ressemble à ceci :

/
- docker-compose.yml
- node-app.env
- node/
  - app.js
  - Dockerfile.js

10voto

Good man Points 147

Dans le fichier docker-compose.yml, vous pouvez utiliser ce format :

volumes:
    - host directory:container directory

en fonction de leur documentation

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X