Hello tous le monde,
J'ai commencé Docker et ça va pas trop mal jusque maintenant.
Pour le moment j'ai crée mon image a partir d'un projet React basique histoire de découvrir le fonctionnement .
Je suis capable de lancer un conteneur avec mon image mais maintenant, j'aimerai bien que quand je modifie du code dans l'éditeur,
les changements s'applique au conteneur en rafraichissant la page sans avoir à relancer le conteneur.
Du coup j'utilise la commande suivante
docker run -d -it -p 3000:3000 -v ${pwd}/my-app:/app my-app
et le contenu de mon dockerfile

FROM node:alpine
RUN mkdir /app
WORKDIR /app
RUN npm install
COPY . /app
CMD ["npm", "start"]

J'ai vu ce fonctionnement sur la vidéo de découverte de docker.
Quelqu'un pourrait me dire si j'ai loupé quelque chose ou alors je m'y prend mal ?

Merci d'avance =)

3 réponses


popotte
Réponse acceptée

Hello :) Alors le package et le lock doit surement être copiéée c'est bon COPY . /app

Par contre ta commande CMD ["npm", "start"] le problème doit venir de la, tu peux montrer les scripts de ton package.json?

bonjour,

Dans ton dockerfile tu lances ton server comme si tu le builder.
il faut que tu lances ton container en pour dev, je te laisse aller voir dans ton package.json

Et je re marque que ton package.json et package.lock n'est surement pas dans ton container

ReckEx
Auteur

Salut Isox et popotte =)

Isox : J'ai pas tout compris à ton message :/.
Popotte : Alors j'ai effacé l'image, je suis parti sur autre chose :/
Sur le discord, on m'a conseillé plusieurs solution dont Vite, ce que j'ai choisi de faire.
Alors, ca fonctionne mais j'ai galéééééré pour le faire !
Le contenu du dossier node_modules qui n'allait pas, ca ne voulait pas me lancé la config de vite.
Après avoir résolu le problème, ma théorie bullshit, c'est que quand je lie le dossier hote au conteneur, à cause des problème d'architexture lié au dossier node_modules qui est sur l'hote, il n'arrive pas à lancer vite.
J'ai lancé un conteneur sans liaison et copier le dossier node_modules du conteneur pour le mettre sur l'hote : docker cp idContainer:chemin/fichier/conteneur chemin/dossier/hote
Et du coup ça fonctionne, alors je ne sais pas si c'est bancale ou pas mais ça marche pour le moment, à voir dans le futur si ça me pose problème ^^.

Merci a vous deux en tout cas =)